通过万岁!!!
- 题目:给你一个数组,然后把数组中的0所在的行和列都变成0。
- 思路:我这里就是先遍历数组,把行和列都保存下来。然后把对应的行和对应的列都改成0即可。
- 技巧:哈希
java代码
class Solution {
public void setZeroes(int[][] matrix) {
Set<Integer> hangSet = new HashSet<>();
Set<Integer> lieSet = new HashSet<>();
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[0].length; j++) {
if (matrix[i][j] == 0) {
hangSet.add(i);
lieSet.add(j);
continue;
}
}
}
for (int idx : hangSet) {
for (int i = 0; i < matrix[0].length; i++) {
matrix[idx][i] = 0;
}
}
for (int idx : lieSet) {
for (int i = 0; i < matrix.length; i++) {
matrix[i][idx] = 0;
}
}
}
}
- 总结:题目还是比较简单的,虽然是一个中等难度的题目。