- 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
进阶:
一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
你能想出一个仅使用常量空间的解决方案吗?
这就是中等题嘛,爱了爱了
class Solution {
public:
void setZeroes(vector<vector<int>>& matrix) {
int size = matrix.size();
if (size == 0) {
return;
}
vector<int> xx;
vector<int> yy;
int zeroSize = matrix[0].size();
for (int i = 0; i < size; i++) {
for (int j = 0; j < zeroSize; j++) {
if (matrix[i][j] == 0) {
xx.push_back(i);
yy.push_back(j);
}
}
}
for (int m = 0; m < xx.size(); m++) {
int i = xx[m], j = yy[m];
for (int k = 0; k < size; k++) {
matrix[k][j] = 0;
}
for (int k = 0; k < zeroSize; k++) {
matrix[i][k] = 0;
}
}
}
};