每日一题:73. 矩阵置零

解题思路

利用一个rows记录0所在的行数,lie记录0所在的列数
然后对着两个list进行遍历 对应的每行每列置为0即可

代码

class Solution {
    public void setZeroes(int[][] matrix) {
        int n=matrix.length,m=matrix[0].length;
        List<Integer> rows = new ArrayList<>();
        List<Integer> lie = new ArrayList<>();
        for (int i=0;i<n;i++){
            for (int j=0;j<m;j++){
                if (matrix[i][j]==0){
                    rows.add(i);
                    lie.add(j);
                }
            }
        }
        for (int i=0;i<rows.size();i++){
            int row = rows.get(i);
            for (int j=0;j<m;j++){
                matrix[row][j]=0;
            }
        }
        for (int i=0;i<lie.size();i++){
            int l = lie.get(i);
            for (int j=0;j<n;j++){
                matrix[j][l]=0;
            }
        }
    }
}

你可能感兴趣的:(算法)