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
            }
        }
    }
};
posted @ 2024-11-05 18:59  Frommoon  阅读(5)  评论(0编辑  收藏  举报