1 public class Solution {
2 public void setZeroes(int[][] matrix) {
3 boolean row = false;
4 boolean col = false;
5 for(int i=0;i<matrix.length;i++){
6 if(matrix[i][0]==0){
7 row =true;
8 break;
9 }
10 }
11 for(int i=0;i<matrix[0].length;i++){
12 if(matrix[0][i]==0){
13 col=true;
14 break;
15 }
16 }
17 for(int i=1;i<matrix.length;i++)// should be from 1
18 for(int j=1;j<matrix[0].length;j++){
19 if(matrix[i][j]==0){
20 matrix[i][0]=0;
21 matrix[0][j]=0;
22 }
23 }
24
25 for(int i=1;i<matrix.length;i++)
26 for(int j=1;j<matrix[0].length;j++){
27 if(matrix[0][j]==0||matrix[i][0]==0){
28 matrix[i][j]=0;
29 }
30 }
31 for(int i=0;i<matrix.length;i++){
32 if(row){
33 matrix[i][0]=0;
34 }
35 }
36 for(int i=0;i<matrix[0].length;i++){
37 if(col){
38 matrix[0][i]=0;
39 }
40 }
41 }
42 }