编写一种算法,若M × N矩阵中某个元素为0,则将其所在的行与列清零。
示例 1:
输入:
[
[1,1,1],
[1,0,1],
[1,1,1]
]
输出:
[
[1,0,1],
[0,0,0],
[1,0,1]
]
示例 2:
输入:
[
[0,1,2,0],
[3,4,5,2],
[1,3,1,5]
]
输出:
[
[0,0,0,0],
[0,4,5,0],
[0,3,1,0]
]
分析:
方法1:Set集合
利用两个集合分别存储每个0的横纵坐标,然后遍历横纵坐标将其对应行列清零即可。
时间复杂度:O(m*n) m、n 为矩阵宽高
空间复杂度:O(m+n) 最坏情况矩阵全都为0
class Solution {
public void setZeroes(int[][] matrix) {
//记录宽高
int row = matrix.length;
if(row == 0){
return;
}
int col = matrix[0].length;
//创建集合,记录要变0的行列
HashSet<Integer> rs