leetcode 73 两种解法~~,没有一个是我想出来的,哈哈~~
one
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m=matrix.size(),n=matrix[0].size();bool col=false,row=false;for(int i=0;i!=m;++i){if(!matrix[i][0]) {col=true;break;}}for(int j=0;j!=n;++j){if(!matrix[0][j]){row=true;break;}}for(int i=1;i!=m;++i){for(int j=1;j!=n;++j){if(!matrix[i][j]){matrix[i][0]=matrix[0][j]=0;}}}for(int i=1;i!=m;++i){for(int j=1;j!=n;++j){if(!matrix[i][0]||!matrix[0][j]){matrix[i][j]=0;}}}if(col){for(int i=0;i!=m;++i){matrix[i][0]=0;}}if(row){for(int j=0;j!=n;++j){matrix[0][j]=0;}}}
};
two
class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m=matrix.size(),n=matrix[0].size();bool col=false;for(int i=0;i<m;++i){if(!matrix[i][0]) col=true;for(int j=1;j<n;++j){if(!matrix[i][j]) matrix[i][0]=matrix[0][j]=0;}}for(int i=m-1;i>=0;--i){for(int j=1;j<n;++j){if(!matrix[i][0]||!matrix[0][j]) matrix[i][j]=0;}}if(col){for(int i=0;i<m;++i){matrix[i][0]=0;}}}
};
END