leetcode73-矩阵置零
leetcode 73
思路
- 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中
- 置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0
具体步骤
- 初始化变量:获取矩阵的行数aLen和列数bLen,并创建空数组zeroPosition来存储 0 元素的坐标
- 查找 0 元素:使用双重循环遍历矩阵,当发现元素为 0 时,将其行列坐标[i, j]存入zeroPosition
- 置零操作:遍历zeroPosition数组,对每个坐标[x, y],将第x行和第y列的所有元素置为 0
实现
var setZeroes = function (matrix) {const aLen = matrix.length;const bLen = matrix[0].length;const zeroPosition = []; // 0的位置// 查找为0元素的坐标for (let i = 0; i < aLen; i++) {for (let j = 0; j < bLen; j++) {if (matrix[i][j] === 0) {zeroPosition.push([i, j])}}}// 设置0操作for (let i = 0; i < zeroPosition.length; i++) {const x = zeroPosition[i][0] const y = zeroPosition[i][1]for (let j = 0; j < aLen; j++) {matrix[j][y] = 0}for (let j = 0; j < bLen; j++) {matrix[x][j] = 0}}return matrix
};