一、问题描述
二、解题思路
思路1.先获取矩阵中所有0所在的位置
2.循环使得所在位置的0所在的行和高归为0;
代码如下(示例):
import java.util.HashSet;
import java.util.Set;
class Solution {
public void setZeroes(int[][] matrix) {
Set<Integer> row_zero = new HashSet<>();
Set<Integer> col_zero = new HashSet<>();
//获取矩阵的行和高
int row = matrix.length;
int col = matrix[0].length;
//记录下矩阵中0的位置
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (matrix[i][j] == 0) {
row_zero.add(i);
col_zero.add(j);
}
}
}
//将0所在位置的行和高都变为0
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (row_zero.contains(i) || col_zero.contains(j)) matrix[i][j] = 0;
}
}
}
}
测试结果: