set matrix zeroes


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


Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class {
public void setZeroes(int[][] matrix) {
int flag = 1;
for(int i=0; i<matrix.length; i++) {
if(matrix[i][0]==0) flag = 0;
for(int j=1; j<matrix[0].length; j++) {
if(matrix[i][j] == 0) {
matrix[i][0] = 0;
matrix[0][j] = 0;
}
}
}
for(int i=matrix.length-1;i>=0;i--) {
for(int j=matrix[0].length-1;j>=1;j--) {
if(matrix[i][0]==0 || matrix[0][j]==0)
matrix[i][j] = 0;
}
if(flag == 0) matrix[i][0] = 0;
}
}
}