多维数组置零
时间: 2023-09-01 22:08:21 浏览: 84
多维数组
多维数组置零可以使用双重循环来实现。以下是示例代码:
```c++
void setZeroes(vector<vector<int>>& matrix) {
int m = matrix.size(), n = matrix[0].size();
vector<bool> row(m, false), col(n, false);
// 找到需要置零的行和列
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
if (matrix[i][j] == 0) {
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;
}
}
}
}
```
该算法使用了两个布尔数组来记录需要置零的行和列。首先遍历整个数组,如果找到了一个0,就将该行和该列的标记设置为true。接下来再次遍历整个数组,如果某一行或某一列需要置零,就将该位置的值设置为0即可。
阅读全文