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

LeetCode100-73矩阵置零

本文基于各个大佬的文章

上点关注下点赞,明天一定更灿烂!


前言

        Python基础好像会了又好像没会,所有我直接开始刷leetcode一边抄样例代码一边学习吧。本系列文章用来记录学习中的思考,写给自己看的,也欢迎大家在评论区指导~

        您的每一条评论都会让我更有学习的动力。


一、分析题目

二、思路以及代码

不要啊,矩阵问题,这个我真的一点都找不到规律,虽然级别是中等,在我这边算难上加难。

我有个想法是这样的:因为是把同行同列置零,所有置零后相当于缩小了一个单位矩阵,每次看当前矩阵的第一行第一列有没有0,有的话就置零,缩小矩阵,没有的话看第二行第二列。不行不行我脑子又乱了,看题解吧,遇到困难就要放弃。73. 矩阵置零 - 力扣(LeetCode)

博主第一个用的算是打暴力了哈哈,喜欢喜欢

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""row = len(matrix)col = len(matrix[0])row_zero = set()col_zero = set()for i in range(row):for j in range(col):if matrix[i][j] == 0:row_zero.add(i)col_zero.add(j)for i in range(row):for j in range(col):if i in row_zero or j in col_zero:matrix[i][j] = 0

第二个好像思路跟我开始的有点一样,利用矩阵本身的第一行和第一列作为“标记”或者“辅助存储空间”,来记录哪些行和哪些列需要被置为零。

class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""row = len(matrix)col = len(matrix[0])row0_flag = Falsecol0_flag = False# 找第一行是否有0for j in range(col):if matrix[0][j] == 0:row0_flag = Truebreak# 第一列是否有0for i in range(row):if matrix[i][0] == 0:col0_flag = Truebreak# 把第一行或者第一列作为 标志位for i in range(1, row):for j in range(1, col):if matrix[i][j] == 0:matrix[i][0] = matrix[0][j] = 0#print(matrix)# 置0for i in range(1, row):for j in range(1, col):if matrix[i][0] == 0 or matrix[0][j] == 0:matrix[i][j] = 0if row0_flag:for j in range(col):matrix[0][j] = 0if col0_flag:for i in range(row):matrix[i][0] = 0

三、本题收获

我还是更适合打暴力,y1s1


总结

        只会打暴力,基础一团糟,明天再学吧老铁,别真学会了。

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

相关文章:

  • windows中Qwen3‑Coder 与 Claude Code 搭配使用
  • 网络请求优化:用 Retrofit 拦截器玩转日志、重试与缓存,OkHttp 和 Volley 谁更香?
  • React前端开发_Day4
  • 华为HCIP数通学习与认证解析!
  • 基于STM32设计的智能宠物喂养系统(华为云IOT)_273
  • STM32F103C8T6的智能实验室危化品管理系统设计与华为云实现
  • Java 获取淘宝关键词搜索(item_search)API 接口实战指南
  • vue3+antd实现华为云OBS文件拖拽上传详解
  • 华为云CCE的Request和Limit
  • AI+云,双擎驱动——华为云让智能触手可及
  • Django Admin 管理工具
  • Java中协变逆变的实现与Kotlin中的区别
  • 如何用 Kotlin 在 Android 手机开发一个应用程序获取国家或地区信息
  • echo、seq、{}、date、bc命令
  • 如何用 Kotlin 在 Android 手机开发一个应用程序获取网络时间
  • OpenCV之霍夫变换
  • 在C++11中实现函数式编程的组合子
  • AI推介-大语言模型LLMs论文速览(arXiv方向):2025.04.25-2025.04.30
  • React Native 初体验
  • rabbitmq学习笔记 ----- 多级消息延迟始终为 20s 问题排查
  • OpenCV 图像预处理核心技术:阈值处理与滤波去噪
  • LubanCat-RK3568 UART串口通信,以及遇到bug笔记
  • CRYPT32!CryptMsgUpdate函数分析和asn.1 editor nt5inf.cat 的总览信息
  • 第八篇 永磁同步电机控制-MTPA、MTPV
  • 深入解析Qt节点编辑器框架:数据流转与扩展机制(三)
  • 实时音视频延迟优化指南:从原理到实践
  • 零知开源——基于STM32F407VET6和ADXL345三轴加速度计的精准运动姿态检测系统
  • Blender模拟结构光3D Scanner(三)获取相机观测点云的真值
  • OpenCV 基础知识总结
  • 无懈可击的 TCP AIMD