矩阵置零(力扣)思维 JAVA

这篇具有很好参考价值的文章主要介绍了矩阵置零(力扣)思维 JAVA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

矩阵置零(力扣)思维 JAVA,矩阵,leetcode,java

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

矩阵置零(力扣)思维 JAVA,矩阵,leetcode,java

输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

提示:

m == matrix.length
n == matrix[0].length
1 <= m, n <= 200
-2^31 <= matrix[i][j] <= 2^31 - 1

进阶:

一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
你能想出一个仅使用常量空间的解决方案吗?

解题思路:

1、本题涵盖了int类型的所有数据范围,所以不能简单的用-1做叠加态

2、设立两个布尔数组,当某个位置的值为零那么便用布尔数组标记此行,此列

3、再次遍历数组,被标记的行列制零即可

代码:

class Solution {
    public void setZeroes(int[][] matrix) {
    	 int m = matrix.length;
    	 int n = matrix[0].length;
         boolean fx[] = new boolean[m];
         boolean fy[] = new boolean[n];
         for(int i = 0; i < m; i ++)
        	 for(int j = 0; j < n; j ++)
        		 if(matrix[i][j] == 0) {
        			 fx[i] = true;
        			 fy[j] = true;
        		 }
         for(int i = 0; i < m; i ++)
        	 for(int j = 0; j < n; j ++)
        		 if(fx[i] == true || fy[j] == true) matrix[i][j] = 0;
    }
}

矩阵置零(力扣)思维 JAVA,矩阵,leetcode,java文章来源地址https://www.toymoban.com/news/detail-607875.html

到了这里,关于矩阵置零(力扣)思维 JAVA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 比较版本号(力扣)思维 JAVA

    给你两个版本号 version1 和 version2 ,请你比较它们。 版本号由一个或多个修订号组成,各修订号由一个 ‘.’ 连接。每个修订号由 多位数字 组成,可能包含 前导零。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订

    2024年02月15日
    浏览(34)
  • Java每日一练(20230515) 阶乘后的零、矩阵置零、两数相除

    目录 1. 阶乘后的零  🌟 2. 矩阵置零  🌟🌟 3. 两数相除  🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C++每日一练 专栏 Java每日一练 专栏 给定一个整数  n  ,返回  n!  结果中尾随零的数量。 提示  n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1 示例

    2024年02月05日
    浏览(37)
  • 【Leetcode】73.矩阵置零

    给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例1: 示例2: 提示: m == matrix.length n == matrix[0].length 1 = m, n = 200 -2 31 = matrix[i][j] = 2 31 - 1 进阶: 一个直观的解决方案是使用

    2024年02月13日
    浏览(35)
  • leetcode 73.矩阵置零

    题目链接:leetcode 73 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 1)示例 1: 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 2)示例 2: 输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]] 输出:[[0,0,0,0],[0,4,5,0],[0,

    2024年02月07日
    浏览(33)
  • Leetcode.73矩阵置零

    给定一个  m x n  的矩阵,如果一个元素为  0  ,则将其所在行和列的所有元素都设为  0  。请使用  原地  算法

    2024年02月11日
    浏览(32)
  • 【LeetCode-中等题】73. 矩阵置零

    参考链接:614,矩阵置零 先设置两个boolean 变量来判断第一行第一列临时数组是否存在0,存在0,说明第一列或第一行要全体置0 先遍历矩阵,将出现0的位置的第一行第一列置为0,后续可以根据第一行或列是否为0,来将对应的行或列全体置为0 根据第一行第一列的置0行列,来

    2024年02月09日
    浏览(34)
  • leetcode做题笔记73矩阵置零

    给定一个  m x n  的矩阵,如果一个元素为  0  ,则将其所在行和列的所有元素都设为  0  。请使用  原地  算法 。 本题可直接将行列值记录下来,再根据行列值内数字是否为1将该行或该列的数字全部变为0 本题考察矩阵的应用,直接暴力解决即可。

    2024年02月13日
    浏览(41)
  • 算法leetcode|73. 矩阵置零(rust重拳出击)

    给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 m == matrix.length n == matrix[0].length 1 = m, n = 200 -2 31 = matrix[i][j] = 2 31 - 1 一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。 一个简单的改进方案是使

    2024年02月11日
    浏览(31)
  • 01 矩阵(力扣)多源广度优先搜索 JAVA

    给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 输入:mat = [[0,0,0],[0,1,0],[0,0,0]] 输出:[[0,0,0],[0,1,0],[0,0,0]] 输入:mat = [[0,0,0],[0,1,0],[1,1,1]] 输出:[[0,0,0],[0,1,0],[1,2,1]] 提示

    2024年02月15日
    浏览(37)
  • 【LeetCode 热题 100】矩阵 专题(大多原地算法,需要一定思维)

    解题思路 在 代码注释中!

    2024年02月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包