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;
}
}
}
}