-
在原表上做修改,需要记录哪一行那一列是0,所以不是发现为0后原地修改。
-
使用row和col(Set集合)记录为0的行列,然后逐一更新matrixs即可。
-
时间复杂度O(nm),空间复杂度O(n + m)
java
class Solution {
public void setZeroes(int[][] matrix) {
List<Integer> row = new ArrayList<>();
List<Integer> col = new ArrayList<>();
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
if (matrix[i][j] == 0) {
row.add(i);
col.add(j);
}
}
}
for (int i = 0; i < row.size(); i++) {
Arrays.fill(matrix[row.get(i)], 0);
}
for (int i = 0; i < col.size(); i++) {
for (int j = 0; j < matrix.length; j++) {
matrix[j][col.get(i)] = 0;
}
}
}
}```