73.矩阵置零
/**
* 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var setZeroes = function (matrix) {
let m = matrix.length
let n = matrix[0].length
// 找出0所在位置的行和列
var rowMap = {}
var colMap = {}
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if (matrix[i][j] === 0) {
rowMap[i] = true
colMap[j] = true
}
}
}
for (let i = 0; i < m; i++) {
for (let j = 0; j < n; j++) {
if (rowMap[i] || colMap[j]) {
matrix[i][j] = 0
}
}
}
console.log(matrix);
};
// 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
// 输出:[[1,0,1],[0,0,0],[1,0,1]]
setZeroes([[1, 1, 1], [1, 0, 1], [1, 1, 1]])