Skip to content

哈希表 - 矩阵置零

javascript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
let matrix = [[1, 1, 1], [1, 0, 1], [1, 1, 1]];
let set = new Set();
let row = matrix.length;
let col = matrix[0].length;
const removeRowCol = (x, y) => {
    // col
    for (let i = 0; i < row; i++) {
        matrix[i][y] = 0;
    }
    //row
    for (let i = 0; i < col; i++) {
        matrix[x][i] = 0;
    }
};
for (let i = 0; i < row; i++) {
    for (let j = 0; j < col; j++) {
        if (matrix[i][j] === 0) {
            set.add(`${i},${j}`);
        }
    }
}
for (let i = 0; i < row; i++) {
    for (let j = 0; j < col; j++) {
        if (set.has(`${i},${j}`)) {
            removeRowCol(i, j);
        }
    }
}
console.log(matrix);
typescript
 let matrix=[[1,1,1],[1,0,1],[1,1,1]]
 
 let set = new Set()
    let row = matrix.length
    let col = matrix[0].length

    const removeRowCol = (x:number, y:number) => {
        // col
        for (let i = 0; i < row; i++) {
            matrix[i][y] = 0
        }
        //row
        for (let i = 0; i < col; i++) {
            matrix[x][i] = 0
        }
    }

    for (let i = 0; i < row; i++) {
        for (let j = 0; j < col; j++) {
            if (matrix[i][j] === 0) {
                set.add(`${i},${j}`)
            }
        }
    }

    for (let i = 0; i < row; i++) {
        for (let j = 0; j < col; j++) {
            if (set.has(`${i},${j}`)) {
                removeRowCol(i, j)
            }
        }
    }

    console.log(matrix)

源码地址