方法:标记数组,标记为0的元素的行或者列,然后遍历原数组,标记数组为1对应的行和列置0.
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = matrix[0].size();
int array1[m];
int array2[n];
memset(array1,0,sizeof(array1));
memset(array2,0,sizeof(array2));
for(int i = 0 ;i<m;i++)
{
for(int j = 0;j<n;j++)
{
if(matrix[i][j]==0)
{
array1[i]=1;
array2[j]=1;
}
}
}
for(int k = 0;k<m;k++)
for(int p = 0;p<n;p++)
{
if(array1[k]||array2[p])
matrix[k][p]=0;
}
}
};