首页 > 其他 > 详细

73. 矩阵置零

时间:2020-08-07 11:16:36      阅读:78      评论:0      收藏:0      [点我收藏+]

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

示例 1:

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

示例 2:

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

 

class Solution {
    public void setZeroes(int[][] matrix) {
        int lenx = matrix.length, leny = matrix[0].length;
        boolean[] row = new boolean[lenx], col = new boolean[leny];
        for (int i = 0; i < lenx; i++)
            for (int j = 0; j < leny; j++)
                if (matrix[i][j] == 0) {
                    row[i] = true;
                    col[j] = true;
                }
        for (int i = 0; i < lenx; i++)
            for (int j = 0; j < leny; j++)
                if (row[i] || col[j])
                    matrix[i][j] = 0;
    }
}

  

进阶:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/set-matrix-zeroes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

73. 矩阵置零

原文:https://www.cnblogs.com/PHUN19/p/13451249.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!