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
};
相关推荐
文丑颜不良啊18 小时前
LeetCode2821~2840题目解析
java·leetcode
Pniubi1 天前
力扣24. 两两交换链表中的节点(递归)
算法·leetcode·链表
nice_lcj5201 天前
LRU 缓存入门:它是什么、怎么用、面试怎么手写
java·数据结构·缓存·面试·lru
꧁细听勿语情꧂1 天前
直接选择排序,堆排序,冒泡排序,递归快速排序、hoare版本、挖坑法、lomuto前后指针,非递归快速排序
c语言·开发语言·数据结构·算法
文丑颜不良啊1 天前
LeetCode2741~2760题目解析
java·leetcode
俊俊几年的1 天前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c
Pniubi1 天前
关于算法用现成数据结构和手撕
数据结构
老师我太想进步了20262 天前
【数据结构-6】算法美学之单链表(1)
数据结构·算法
希望我万事顺遂2 天前
力扣hot100-滑动窗口最大值
数据结构·算法·leetcode