【hot100】刷题记录(8)-矩阵置零

devtools/2025/2/7 23:15:35/

题目描述:

给定一个 m x n 的矩阵,如果一个元素为 ,则将其所在行和列的所有元素都设为 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]]
    

     

    提示:

    • m == matrix.length
    • n == matrix[0].length
    • 1 <= m, n <= 200
    • -231 <= matrix[i][j] <= 231 - 1

     

     

    我的作答:

    犯了一个逻辑错误,当遍历到0元素时我直接给行和列置零了。。但是这样会导致后面再遍历,每置零的元素的行和列会再置零。。导致0多了

    所以思路是先储存0元素的索引,再分别置零行和列。由于行和列有可能会重合,所以使用集合来储存行和列索引

    python">class Solution(object):def setZeroes(self, matrix):""":type matrix: List[List[int]]:rtype: None Do not return anything, modify matrix in-place instead."""if not matrix: matrix = [[]]m = len(matrix)n = len(matrix[0])row = set()col = set()for i in range(m):for j in range(n):if matrix[i][j]==0:row.add(i) #行col.add(j) #列for i in row:matrix[i] = [0]*nfor j in col:for row in range(m):matrix[row][j] = 0

     

    参考:

    python">class Solution(object):def setZeroes(self, matrix):""":type matrix: List[List[int]]:rtype: 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
    

     


    http://www.ppmy.cn/devtools/156954.html

    相关文章

    国产之光DeepSeek架构理解与应用分析

    目录 初步探索DeepSeek的设计 一、核心架构设计 二、核心原理与优化 三、关键创新点 四、典型应用场景 五、与同类模型的对比优势 六、未来演进方向 从投入行业生产的角度看 一、DeepSeek的核心功能扩展 二、机械电子工程产业中的具体案例 1. 预测性维护&#xff08;Predictive…

    基于Java(SpringBoot)+MySQL+Vue实现的平行志愿录取系统

    基于spring bootvue实现的平行志愿录取系统 1.项目简介 这两天干上高考出成绩&#xff0c;有不少亲戚家的孩子今年高考&#xff0c;和我询问关于报志愿的问题。老家河北今年是采用所谓的平行志愿。我看了很多的资料才明白什么叫所谓的“平行志愿”。 整个流程好像很是复杂。…

    AI开发模式:ideal或vscode + 插件continue+DeepSeek R1

    如何在 VSCode 中结合插件 Continue 和 DeepSeek 构建智能货柜AI开发环境的详细指南,涵盖环境配置、算法开发与模型优化全流程: 1. 环境搭建与工具选型 核心工具 工具/插件用途推荐配置VSCode主开发环境,支持多语言与插件扩展安装Python/C++/CUDA扩展ContinueAI代码助手(类…

    Gateway路由匹配规则详解

    在微服务架构中&#xff0c;Gateway作为请求的入口&#xff0c;扮演着至关重要的角色。它不仅负责路由转发&#xff0c;还具备安全、监控、限流等多种功能。其中&#xff0c;路由匹配规则是Gateway的核心功能之一&#xff0c;它决定了请求如何被正确地转发到目标服务。本文将详…

    自由学习记录(34)

    服务端相对特殊处理一下&#xff0c;因为是多线程处理&#xff0c;而客户端的断开连接会造成socket容器里socket数量减少 这样的处理方式有很多问题&#xff0c;但解决的话甚至要从根本上修改&#xff0c;所以&#xff0c;在这更多是知识点的演示 客户端是正常的模式 VS的服务端…

    计算机视觉:解锁智能时代的钥匙与实战案例

    计算机视觉&#xff1a;解锁智能时代的钥匙与实战案例 在人工智能的浩瀚星空中&#xff0c;计算机视觉无疑是最为璀璨的星辰之一。它不仅让机器拥有了“看”的能力&#xff0c;更是推动了自动驾驶、安防监控、医疗影像分析、智能制造等多个领域的革新。本文将深入探讨计算机视…

    Linux 内核模块 | 加载 / 添加 / 删除 / 优先级

    注&#xff1a;本文为 “Linux 内核模块加载 / 添加 / 删除 / 优先级” 相关文章合辑。 机翻&#xff0c;未校。 未整理去重。 How Linux Kernel Boots? Linux 内核如何启动&#xff1f; Last Updated: 26 Apr, 2023 Many processes are running in the background when …

    计算机网络之数据链路层(数据链路层的功能)

    帧同步&#xff1a; 数据链路层将网络层传下来的数据报封装成帧&#xff0c;为了区分不同的帧&#xff0c;需要在每个帧的开头和结尾添加特殊的标记&#xff0c;以实现帧的定界和同步。这样&#xff0c;接收方就能准确地识别出一个帧的开始和结束。 差错控制&#xff1a; 在…