面试题 01.08. 零矩阵

时间:2021-02-16 11:50:42   收藏:0   阅读:0

面试题 01.08. 零矩阵

编写一种算法,若M × N矩阵中某个元素为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]
]

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/array-and-string/ciekh/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

class Solution {
    public void setZeroes(int[][] matrix) {
        if(matrix == null || matrix.length == 0 || matrix[0].length == 0) return;

        int m = matrix.length,n = matrix[0].length;    //行列的长度
        int[] rows = new int[m];   
        int[] colums = new int[n];    //这两行代码是记录  要是有0的话 这一列和这一行记录为1
        for(int i=0; i<m; i++){
            for(int j=0; j<n; j++){
                if(matrix[i][j] == 0){
                    rows[i] = 1;    //此行记录有0
                    colums[j] = 1;   //此列记录有0
                }
            }
        }
        for(int i=0; i<m; i++){
            for(int j=0; j<n; j++){
                if(rows[i]==1 || colums[j]==1) matrix[i][j] = 0;   //此行和此列设置为0
            }
        }
    }
}

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!