73. 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法 。
set 无序集合
s.insert()
for(int x:s) 遍历元素集合
先用set存储i j 的下标
再遍历set的元素将matrix元素置为0
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size();
int n = matrix[0].size();
set<int> s1;
set<int> s2;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(matrix[i][j]==0){
s1.insert(i);
s2.insert(j);
}
}
}
//某行有0 该行所有列变0
for(int x:s1){
for(int i=0;i<n;i++){
matrix[x][i]=0;
}
}
//某列有0 该列所有行变0
for(int x:s2){
for(int i=0;i<m;i++){
matrix[i][x]=0;
}
}
}
};