首页 > 代码库 > [LeetCode] Set Matrix Zeroes

[LeetCode] 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) {        int row = matrix.size();        if(row==0)            return;        int col = matrix[0].size();        set<int> ZeroRow,ZeroCol;     for(int i=0;i<row;i++)         for(int j=0;j<col;j++)         {            if(matrix[i][j]==0)            {                ZeroRow.insert(i);                ZeroCol.insert(j);            }                  }//end for         for(set<int>::iterator iter = ZeroRow.begin();iter!=ZeroRow.end();iter++)            for(int j=0;j<col;j++)                matrix[*iter][j]=0;         for(set<int>::iterator iter = ZeroCol.begin();iter!=ZeroCol.end();iter++)            for(int j=0;j<row;j++)                matrix[j][*iter]=0;    }};