题目链接: 73. 矩阵置零 - 力扣(LeetCode)
题目描述
解题思路
- 首先双重for循环遍历整个数组
- 我们遍历这个数组之后要标记其中为0的元素
- 将这个元素标记好之后,行下标和列下标保存到两个数组当中去。
- 重新双重for循环遍历数组
- 遇到标记好的元素下标,我们将matrix[i][j]设置为0
代码实现
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m=matrix.size();
int n=matrix[0].size();
vector<bool> row(m),col(n);
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(!matrix[i][j]){
row[i]=true;
col[j]=true;
}
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(row[i]||col[j]){
matrix[i][j]=0;
}
}
}
}
};