public:
void setZeroes(vector<vector<int>>& matrix) {
vector<vector<int>> ivec(matrix);
int m=matrix.size();
int n=matrix[0].size();
vector<int> zero(n,0);
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(matrix[i][j]==0)
{
for(int k=0;k<m;k++)
ivec[k][j]=0; //注意
ivec[i]=vector<int>(n,0); // ivec[i].assign(zero.begin(),zero.end());
}
}
}
matrix=ivec; //两个vector可以直接用等于号;
return;
}
};
两个bool数组,存下每行每列是否有0;
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
// vector<vector<int>> ivec(matrix);
int m=matrix.size();
int n=matrix[0].size();
bool row[m]={0};
bool col[n]={0};
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(matrix[i][j]==0)
{
row[i]=1;
col[j]=1;
}
}
}
for(int i=0;i<m;i++)
{
if(row[i])
fill(&matrix[i][0],&matrix[i][0]+n,0);
}
for(size_t j=0;j<n;++j)
{
if(col[j])
{
for(size_t i=0;i<m;++i)
{
matrix[i][j]=0;
}
}
}
return;
}
};