Set Matrix Zeroes

 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 }
View Code

 

posted @ 2014-02-06 14:43  krunning  阅读(126)  评论(0编辑  收藏  举报