73.矩阵置零
思路:用两个数组来标记哪几行或哪几列需要置为0即可。
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m =matrix.size(),n=matrix[0].size();
bool sta_m[205],sta_n[205];
memset(sta_m,0,sizeof sta_m);
memset(sta_n,0,sizeof sta_n);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(matrix[i][j]==0){
sta_m[i]=1;
sta_n[j]=1;
}
}
}
/*
for(int i=0;i<m;i++){
if(sta_m[i]){
for(int j=0;j<n;j++)
matrix[i][j]=0;
}
}
for(int i=0;i<n;i++){
if(sta_n[i]){
for(int j=0;j<m;j++)
matrix[j][i]=0;
}
}
*/
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(sta_m[i]||sta_n[j]){
matrix[i][j]=0;
}
}
}
}
};