73. 矩阵置零(中)
题目
- 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
题解:标记数组
var setZeroes = function(matrix) {
//遍历一遍数组记下为0元素的坐标:使用两个数组记录
//重新遍历数组,将与记录相关的(i/j相等的元素)置为0
const m=matrix.length,n=matrix[0].length
const row = new Array(m).fill(false)
const col = new Array(n).fill(false)
for(let i=0;i<m;i++){
for(let j=0;j<n;j++){
if(matrix[i][j]===0){
row[i]=col[j]=true
}
}
}
for(let i=0;i<m;i++){
for(let j=0;j<n;j++){
if(row[i] || col[j]){
matrix[i][j]=0
}
}
}
};