73. Set Matrix Zeroes

Given a mxn matrix, if an element is 0, set its entire row and column to 0. Do it in place.

思路:第一步把含零行列第一个标零。第二步把这些行列权标零(从i=1和j=1开始)。最后一步看第一行和第一列要不要清零

public class Solution {
    public void setZeroes(int[][] matrix) {
        boolean rmfirstrow = false;
        boolean rmfirstcol = false;
        for (int i=0;i<matrix.length;i++){
            for (int j=0;j<matrix[0].length;j++){
                if (matrix[i][j]==0){
                    matrix[0][j] = 0;
                    matrix[i][0] = 0;
                    if (i==0) rmfirstrow = true;
                    if (j==0) rmfirstcol = true;
                }
            }
        }

        for (int i=1;i<matrix.length;i++){
            if (matrix[i][0]==0){
                for (int j=0;j<matrix[0].length;j++){
                    matrix[i][j] = 0;
                }
            }
        }

        for (int j=1;j<matrix[0].length;j++){
            if (matrix[0][j]==0){
                for (int i=0;i<matrix.length;i++){
                    matrix[i][j] = 0;
                }
            }
        }

        if (rmfirstcol){
            for (int i=0;i<matrix.length;i++){
                matrix[i][0] = 0;
            }
        }

        if (rmfirstrow){
            for (int j=0;j<matrix[0].length;j++){
                matrix[0][j] = 0;
            }
        }
    }
}

results matching ""

    No results matching ""