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.

click to show follow up.

Follow up:

Did you use extra space?
A straight forward solution using O(mn) space is probably a bad idea.
A simple improvement uses O(m + n) space, but still not the best solution.
Could you devise a constant space solution?

class Solution {
public:
     void setZeroes(vector<vector< int> > &matrix) 
    {
         if(matrix.size()== 0 || matrix[ 0].size()== 0return;
        vector< int> zerox;
        vector< int> zeroy;
         for( int i= 0;i<matrix.size();i++)
             for( int j= 0;j<matrix[ 0].size();j++)
                 if(matrix[i][j]== 0)
                {
                    zerox.push_back(i);
                    zeroy.push_back(j);
                }
         for( int i= 0;i<zerox.size();i++)
        {
             for( int k= 0;k<matrix.size();k++)
                matrix[k][zeroy[i]]= 0;
             for( int k= 0;k<matrix[ 0].size();k++)
                matrix[zerox[i]][k]= 0;
        }
    }
};  

你可能感兴趣的:(Matrix)