73,矩阵置零
题目描述
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
示例
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]
题解
思路:
使用两个set来保存需要置零的行和列
代码:
var setZeroes = function(matrix) {
const col = new Set(), raw = new Set()
for(let i = 0;i < matrix.length;i++){
for(let j = 0;j < matrix[0].length;j++){
if(matrix[i][j] == 0){
!raw.has(i) && raw.add(i)
!col.has(j) && col.add(j)
}
}
}
for(let key of col){
for(let i = 0;i < matrix.length;i++){
matrix[i][key] = 0
}
}
for(let key of raw){
for(let j = 0;j < matrix[0].length;j++){
matrix[key][j] = 0
}
}
return matrix
};