其他分享
首页 > 其他分享> > Offer_73 矩阵置为零

Offer_73 矩阵置为零

作者:互联网

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

 

 

 

思路分享:将每一行每一列首行首列元素为否为零进行保存,然后对于i和j元素是否零,如果为零个,就把i和j的首行和首列元素设置为零;

之后遍历首行和首列元素,如果为零,将其所在行和所在列进行置为零。

最后与行和列是否为零,进行遍历置为零。

结束。

 

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

    }
}

 

标签:matrix,Offer,int,元素,矩阵,++,length,73,row
来源: https://www.cnblogs.com/slidecode/p/16054302.html