leetcode73-矩阵置零

leetcode 73

思路

  • 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中
  • 置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0
具体步骤
  • 初始化变量:获取矩阵的行数aLen和列数bLen,并创建空数组zeroPosition来存储 0 元素的坐标
  • 查找 0 元素:使用双重循环遍历矩阵,当发现元素为 0 时,将其行列坐标[i, j]存入zeroPosition
  • 置零操作:遍历zeroPosition数组,对每个坐标[x, y],将第x行和第y列的所有元素置为 0

实现

js 复制代码
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
};
相关推荐
似水এ᭄往昔8 小时前
【C++】--AVL树的认识和实现
开发语言·数据结构·c++·算法·stl
TL滕9 小时前
从0开始学算法——第十六天(双指针算法)
数据结构·笔记·学习·算法
天赐学c语言10 小时前
12.14 - 搜索旋转排序数组 && 判断两个结构体是否相等
数据结构·c++·算法·leecode
1024肥宅10 小时前
JavaScript 性能与优化:数据结构和算法
前端·数据结构·算法
仰泳的熊猫10 小时前
1112 Stucked Keyboard
数据结构·c++·算法·pat考试
he___H11 小时前
滑动窗口一题
java·数据结构·算法·滑动窗口
AI科技星11 小时前
统一场论质量定义方程:数学验证与应用分析
开发语言·数据结构·经验分享·线性代数·算法
学编程就要猛11 小时前
数据结构初阶:Map和Set接口
数据结构
jianfeng_zhu11 小时前
不带头节点的链式存储实现链栈
数据结构·算法
lightqjx11 小时前
【算法】双指针
c++·算法·leetcode·双指针