Saturday, February 22, 2014

Set Matrix Zeros--LeetCode

class Solution {
public:
    void setZeroes(vector<vector<int> > &matrix) {
        int row = matrix.size();
        if (row==0)return;
        int col = matrix[0].size();
        if (col==0)return;
       
        bool fc0=false;
        bool fr0=false;
       
        for (int i=0;i<col;i++){
            if (matrix[0][i]==0){fr0 = true;}
        }
        for (int i=0;i<row;i++){
            if (matrix[i][0]==0){fc0 = true;}
        }
       
        for (int i=1;i<row;i++){
            for (int j=1;j<col;j++){
                if (matrix[i][j]==0){
                    matrix[i][0]=0;
                    matrix[0][j]=0;
                }
            }
        }
       
        for (int i=1;i<col;i++){
            if (matrix[0][i]==0){
                for(int j=0;j<row;j++){
                    matrix[j][i]=0;
                }
            }
        }
        for (int i=1;i<row;i++){
            if (matrix[i][0]==0){
                for(int j=0;j<col;j++){
                    matrix[i][j]=0;
                }
            }
        }
       
        if (fr0){
            for (int i=0;i<col;i++){matrix[0][i]=0;}
        }
        if (fc0){
            for (int i=0;i<row;i++){matrix[i][0]=0;}
        }
        return;
    }
};

No comments:

Post a Comment