当前位置: 首页 > news >正文

73.矩阵置零

题目来源:

        LeetCode题目:73. 矩阵置零 - 力扣(LeetCode)

解题思路:

       只想到了空间复杂度为 O(m+n) 的解法。新建两个数组,一个存放需要置0 的行,另一个存放需要置 0 的列,遍历完所给矩阵后根据数组元素的值来修改矩阵。

解题代码:

#python3
class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""row=[1]*len(matrix)column=[1]*len(matrix[0])for i in range(len(matrix)):for j in range(len(matrix[0])):if matrix[i][j]==0:row[i]=0column[j]=0for i in range(len(row)):if row[i]==0:for j in range(len(matrix[0])):matrix[i][j]=0for j in range(len(column)):if column[j]==0:for i in range(len(matrix)):matrix[i][j]=0

总结:

        官方题解给出了三种解法。第一种是两个标记数组。第二种是使用两个标记变量标记第一行或者第一列是否包含0,然后将第一行和第一列作为标记数组标记取余行列。第三种是使用一个标记变量标记第一列是否包含0,然后用第一列的第一个元素标记第一行是否存在0,但是为了防止每一列的第一个元素被提前更新,需要倒序遍历矩阵。


http://www.dtcms.com/a/202715.html

相关文章:

  • 云原生架构下的企业 DevOps 治理实践:挑战、策略与落地路径
  • Git Hooks 和 自动生成 Commit Message
  • mysql的乐观锁与悲观锁
  • VUE3 中的 ResizeObserver 警告彻底解决方案
  • Mysql 中的日期时间函数汇总
  • 喷涂喷漆机器人详解
  • Translational Psychiatry | 注意缺陷多动障碍儿童延迟厌恶的行为与神经功能特征茗创科技茗创科技
  • 互联网大厂面试实录:从内容社区到AIGC的Java全栈技术场景问答
  • 【华为OD-B卷-打印文件 100分(python、java、c++、js、c)】
  • 码钉枪行业2025数据分析报告
  • C++修炼:map和set的使用
  • 频分复用信号在信道中的状态
  • 粤港澳编程题
  • Wan2.1 图生视频 支持批量生成
  • 渐开线少齿差传动学习笔记
  • 【Linux】第二十二章 访问网络附加内存
  • 十大排序算法--快速排序
  • CBCharacteristic:是「特征」还是「数据通道」?
  • 独热编码笔记
  • idea本地debug断点小技巧
  • PCB设计教程【入门篇】——电路分析基础-基本元件(二极管三极管场效应管)
  • OpenCV图像边缘检测
  • 第11天-Python GUI开发实战:Tkinter从入门到项目实践
  • Java 05正则表达式
  • DAY28 超大力王爱学Python
  • 海外盲盒系统开发:重构全球消费体验的科技引擎
  • 探秘隐形冠军|安贝斯携手武汉科创协会x深钣协推进“江浙皖行”,揭秘华荣科技的创新破局
  • 矩阵的秩(Rank)
  • SpringBoot整合LangChain4J
  • 【JavaWeb】MyBatis