73.矩阵置零

给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法**。**

示例 1:

复制代码
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

示例 2:

复制代码
输入:matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
输出:[[0,0,0,0],[0,4,5,0],[0,3,1,0]]

思路:找位置为0的,然后把所在的行和列都置为0(把这些0给标记下,遍历到这些位置上的0不用把同行列上的数值为零)

javascript 复制代码
let flag = new Array();
        var setZeroes = function (matrix) {
        for (let i = 0; i < matrix.length; i++) {
          flag[i] = new Array();
          for (let j = 0; j < matrix[i].length; j++) {
            flag[i][j] = 0;
          }
        }
        for (let i = 0; i < matrix.length; i++) {
          for (let j = 0; j < matrix[i].length; j++) {
            if (matrix[i][j] == 0 && flag[i][j] == 0) {
              dfs(i, j, matrix);
            }
          }
        }
      };
      function dfs(row, column, matrix) {
        for (let i = 0; i < matrix.length; i++) {
          if (matrix[i][column] == 0) continue; //本身就为零
          flag[i][column] = 1;
          matrix[i][column] = 0;
        }
        for (let i = 0; i < matrix[row].length; i++) {
          if (matrix[row][i] == 0) continue; //本身就为零
          flag[row][i] = 1;
          matrix[row][i] = 0;
        }
      }
相关推荐
Frostnova丶3 分钟前
LeetCode 238 & 2906.构造乘积数组与乘积矩阵
算法·leetcode·矩阵
闲人不梦卿4 分钟前
矩阵多项式的定义
线性代数
SuperEugene7 分钟前
Vue3 组合式函数(Hooks)封装规范实战:命名 / 输入输出 / 复用边界 + 避坑|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
cmd11 分钟前
JS深浅拷贝全解析|常用方法+手写实现+避坑指南(附完整代码)
前端·javascript
进击的尘埃12 分钟前
AbortController 实战:竞态取消、超时兜底与请求生命周期管理
前端·javascript
张一凡9312 分钟前
我用 Zustand 三年了,直到遇见 easy-model...
前端·javascript·react.js
张元清13 分钟前
React 拖拽:无需第三方库的完整方案
前端·javascript·面试
链巨人24 分钟前
海森矩阵(Hessian矩阵)及其应用
线性代数·机器学习·矩阵·概率论
zhensherlock24 分钟前
Protocol Launcher 系列:Microsoft Edge 浏览器唤起的优雅方案
javascript·chrome·microsoft·typescript·edge·github·edge浏览器
歪歪歪比巴卜24 分钟前
2026实测5款新媒体矩阵管理工具,AI全流程合规检测,破解矩阵运营难题!
人工智能·矩阵·媒体