文章目录
题目
代码(8.29 首刷自解)
没有使用其他方法省空间
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
vector<vector<int>> used(m, vector<int>(n));
for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
if(matrix[i][j] == 0 && used[i][j] == 0) {
used[i][j] = 1;
convert(matrix, m, n, i, j, used);
}
}
}
}
void convert(vector<vector<int>>& matrix, int m, int n, int x, int y, vector<vector<int>>& used) {
for(int i = 0; i < m; i++) {
if(i != x && matrix[i][y] != 0) {
matrix[i][y] = 0;
used[i][y] = 1;
}
}
for(int i = 0; i < n; i++) {
if(i != y && matrix[x][i] != 0) {
matrix[x][i] = 0;
used[x][i] = 1;
}
}
}
};