leecode73 矩阵置零

在这里插入图片描述

我的思路

这个题目不难,就是一句话,遍历这个矩阵的时候,当遇到0的时候就把该行该列改为0,同时为了不影响后续的遍历,我们可以将这个遍历和修改分为两个数组。使用mn的辅助空间

class Solution {public void setZeroes(int[][] matrix) {//如果只是使用m+n的空间int m = matrix.length,n = matrix[0].length;Set<Integer> line = new HashSet<>();Set<Integer> row = new HashSet<>();for(int i =0;i<m;i++){for(int j =0;j<n;j++){if(matrix[i][j]==0){line.add(i);row.add(j);}}}for(int num:line){for(int k=0;k<n;k++){matrix[num][k]=0;}}for(int num:row){for(int k=0;k<m;k++){matrix[k][num]=0;}}}
}

如果使用m+n的辅助空间,我们可以使用set来使用,set可以去重

class Solution {public void setZeroes(int[][] matrix) {//如果只是使用m+n的空间int m = matrix.length,n = matrix[0].length;Set<Integer> line = new HashSet<>();Set<Integer> row = new HashSet<>();for(int i =0;i<m;i++){for(int j =0;j<n;j++){if(matrix[i][j]==0){line.add(i);row.add(j);}}}for(int num:line){for(int k=0;k<n;k++){matrix[num][k]=0;}}for(int num:row){for(int k=0;k<m;k++){matrix[k][num]=0;}}}
}

其它思路

没有找到灵神的题解,可能灵神觉得这个题目不值得研究吧。

不过找到了一个只用了O(1)复杂度的大佬,看一下他的解法

他的做法主要分为三步,利用第一行和第一列进行标记

  • 第一轮:从 (1,1) 开始扫,用第一行、第一列做标记。
  • 第二轮:再从 (1,1) 开始,根据标记把相应位置清零。
  • 最后:根据两个 flag 决定要不要把第一行、第一列全部清零。
class Solution {public void setZeroes(int[][] matrix) {int row = matrix.length;int col = matrix[0].length;boolean row0_flag = false;boolean col0_flag = false;// 第一行是否有零for (int j = 0; j < col; j++) {if (matrix[0][j] == 0) {row0_flag = true;break;}}// 第一列是否有零for (int i = 0; i < row; i++) {if (matrix[i][0] == 0) {col0_flag = true;break;}}// 把第一行第一列作为标志位for (int i = 1; i < row; i++) {for (int j = 1; j < col; j++) {if (matrix[i][j] == 0) {matrix[i][0] = matrix[0][j] = 0;}}}// 置0for (int i = 1; i < row; i++) {for (int j = 1; j < col; j++) {if (matrix[i][0] == 0 || matrix[0][j] == 0) {matrix[i][j] = 0;}}}if (row0_flag) {for (int j = 0; j < col; j++) {matrix[0][j] = 0;}}if (col0_flag) {for (int i = 0; i < row; i++) {matrix[i][0] = 0;}} }
}作者:powcai
链接:https://leetcode.cn/problems/set-matrix-zeroes/solutions/6594/o1kong-jian-by-powcai/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
```里写自定义目录标题)# 欢迎使用Markdown编辑器你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。## 新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:1. **全新的界面设计** ,将会带来全新的写作体验;2. 在创作中心设置你喜爱的代码高亮样式,Markdown **将代码片显示选择的高亮样式** 进行展示;3. 增加了 **图片拖拽** 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;4. 全新的 **KaTeX数学公式** 语法;5. 增加了支持**甘特图的mermaid语法[^1]** 功能;6. 增加了 **多屏幕编辑** Markdown文章功能;7. 增加了 **焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置** 等功能,功能按钮位于编辑区域与预览区域中间;8. 增加了 **检查列表** 功能。[^1]: [mermaid语法说明](https://mermaidjs.github.io/)## 功能快捷键撤销:<kbd>Ctrl/Command</kbd> + <kbd>Z</kbd>
重做:<kbd>Ctrl/Command</kbd> + <kbd>Y</kbd>
加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd>
斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd>
标题:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd>
无序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd>
有序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd>
检查列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd>
插入代码:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd>
插入链接:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd>
插入图片:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd>
查找:<kbd>Ctrl/Command</kbd> + <kbd>F</kbd>
替换:<kbd>Ctrl/Command</kbd> + <kbd>G</kbd>## 合理的创建标题,有助于目录的生成直接输入1<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成1级标题。
输入2<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用`TOC`语法后生成一个完美的目录。## 如何改变文本的样式*强调文本* _强调文本_**加粗文本** __加粗文本__==标记文本==~~删除文本~~> 引用文本H~2~O is是液体。2^10^ 运算结果是 1024.## 插入链接与图片链接: [link](https://www.csdn.net/).图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。## 如何插入一段漂亮的代码片去[博客设置](https://mp.csdn.net/console/configBlog)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`.
```javascript
// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。1

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n1)!nN 是通过欧拉积分

Γ(z)=∫0∞tz−1e−tdt.\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

2014-01-072014-01-092014-01-112014-01-132014-01-152014-01-172014-01-192014-01-21已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间, 文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.3.0开始我的操作确认?结束yesno
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. 注脚的解释 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/923576.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/923576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 与前端文件上传跨域问题:Multipart、CORS 与网关配置

前言在前后端分离架构下&#xff0c;文件上传是一个常见功能。但在 Spring Boot 项目中&#xff0c;我们经常会遇到前端调用接口上传文件时出现 跨域问题&#xff0c;表现为&#xff1a;浏览器控制台报错&#xff1a;Access-Control-Allow-Origin 缺失或不匹配。使用 FormData …

快速解决云服务器的数据库PhpMyAdmin登录问题

打开PhpMyAdmin数据库管理器登录页面账号密码就是你的用户名&#xff08;如YiXun&#xff09;和密码注意&#xff1a;root账户的密码&#xff0c;点击下面的“root密码”即能看到或修改PhpMyAdmin无法打开如果打不开&#xff1a;在数据库&#xff0c;点击PHPMyAdmin&#xff0c…

vite+vue3中使用FFmpeg@0.12.15实现视频编辑功能,不依赖SharedArrayBuffer!!!

FFmpeg0.12.15完全不依赖SharedArrayBuffer!!!强烈推荐使用 本文章主要是在vitevue3项目中使用FFmpeg&#xff0c;只展示了如何在项目中引入和基础的使用 更多详细参数可参照 ffmpeg官网https://ffmpeg.org/ 一、安装FFmpeg 可通过npm直接安装 npm install ffmpeg/core0.12.10…

构网型5MW中压储能变流升压一体机技术方案

1 构网型储能背景概述1.1 新型电力系统亟需构网支撑众所周知&#xff0c;新型电力系统具有两高特征&#xff1a;高比例新能源大规模并网、高比例电力电子大范围接入。近年来风光装机占比越来越高&#xff0c;而传统火电装机占比越来越低&#xff0c;并在2023年首次降至50%以下…

SRE 系列(七)| 从技术架构到团队组织

目录SRE落地与组织架构实践技术架构与组织架构的匹配技术架构示例运维职责分工技术保障体系SRE 多角色团队总结SRE落地与组织架构实践 在落地 SRE 时&#xff0c;很多团队最关心的问题之一就是组织架构&#xff1a;我们究竟需要怎样的团队形态&#xff0c;才能支撑微服务和分…

香港期权市场的主要参与者有哪些?

本文主要介绍香港期权市场的主要参与者有哪些&#xff1f;香港期权市场作为全球重要的金融衍生品市场&#xff0c;其参与者结构呈现多元化、专业化的特征&#xff0c;主要涵盖以下核心群体。香港期权市场的主要参与者有哪些&#xff1f;1. 机构投资者&#xff08;主导力量&…

搜维尔科技:全身可穿戴Teslasuit动捕服的功能,自立式FES装置

功能性电刺激 (FES) 设备广泛应用于康复和医疗实践。其底层技术利用低能量电脉冲&#xff0c;在中风、脊髓损伤、多发性硬化症、脑瘫等各种疾病患者中人工产生身体运动。一般来说&#xff0c;FES系统可以分为三类&#xff1a;开环、有限状态控制和闭环方法。这三种方法描述了 F…

【深度学习新浪潮】MoE是什么技术?

混合专家模型(Mixture of Experts,MoE)是大模型时代提升计算效率与模型能力的核心技术之一。其核心思想是将复杂任务分解为多个子任务,通过动态路由机制激活特定专家网络处理输入数据,从而在保持模型容量的同时大幅降低计算成本。以下是技术细节与实际应用的深度解析: 一…

Java进阶教程,全面剖析Java多线程编程,实现Callable接口实现多线程,笔记05

Java进阶教程&#xff0c;全面剖析Java多线程编程&#xff0c;实现Callable接口实现多线程&#xff0c;笔记05 参考资料 多线程&JUC-05-多线程的第三种实现方式一、实现Callable接口实现多线程 二、三种方式对比 优点缺点继承Thread类编程比较简单&#xff0c;可以直接使…

轨道交通绝缘监测—轨道交通安全的隐形防线

轨道交通绝缘监测作为保障行车安全的核心环节&#xff0c;正面临多重技术与环境挑战。复杂运营环境是首要痛点&#xff0c;隧道内高湿度&#xff08;月均湿度达95%&#xff09;会增大钢轨表面电导率&#xff0c;雾气中的盐分更会加速扣件绝缘性能下降&#xff0c;导致过渡电阻骤…

tar-符号连接(软连接)

1.符号连接是什么符号链接&#xff08;symbolic link&#xff0c;也叫软链接&#xff09;本质上是一个 指向路径的特殊文件。例如&#xff1a;ln -s /etc/passwd passwd_link这会创建一个叫 passwd_link 的文件&#xff0c;但它本身不存放 /etc/passwd 的内容&#xff0c;而是存…

ffmpeg切割音频

ffmpeg切割音频 我希望对指定音频切割&#xff0c;按照开始时间&#xff0c;结束时间&#xff0c;切割成新文件&#xff0c;自动保存&#xff0c;非常好用 step1: from pydub import AudioSegment import os# 配置FFmpeg路径&#xff08;确保路径正确&#xff09; ffmpeg_path …

Python 批量处理:Markdown 与 HTML 格式相互转换

文章目录引言与同类工具的优势对比Python 将 Markdown 转换为 HTMLPython 将 HTML 转换为 Markdown批量转换与自动化处理引言 在多平台内容分发与管理的场景中&#xff0c;文档格式转换已成为内容生态系统中的关键环节。Markdown 作为轻量级标记语言&#xff0c;以其语法简洁、…

御控物联网远程控制水泵启停智能自控解决方案

在农业灌溉、城市排水、工业供水等场景中&#xff0c;水泵作为核心设备&#xff0c;长期面临以下难题&#xff1a;人工依赖度高&#xff1a;需24小时值守&#xff0c;暴雨或干旱时响应滞后&#xff1b; 能耗浪费严重&#xff1a;空转、过载运行导致电费居高不下&#xff1b; …

RedisI/O多路复用:单线程网络模型epoll工作流程

epoll1. 在内核创建eventpoll结构体&#xff0c;返回句柄epfd&#xff08;唯一标识&#xff09;eventpoll包含存放被监听的fd的红黑树&#xff0c;和存放已就绪的fd的链表2. 将要监听的fd加入到epoll红黑树中&#xff0c;并设置callback回调函数callback触发时&#xff0c;就将…

SmartBear API Hub助力MCP开发,无缝、安全的连接AI与外部工具

人工智能&#xff08;AI&#xff09;技术的应用场景日益广泛&#xff0c;如何让不同的AI系统之间实现高效、无缝的交互&#xff0c;成为了业界的重要课题。随着人工智能技术的不断进步&#xff0c;模型上下文协议&#xff08;MCP&#xff09;应运而生。MCP为不同AI系统之间提供…

如何选择高性价比的iOS签名服务?关键因素与价格区间

作为一名摸爬滚打多年的开发者&#xff0c;我来和你聊聊怎么挑一个靠谱又不坑的iOS签名服务。这玩意儿选不好&#xff0c;轻则测试团队干瞪眼&#xff0c;重则App下架&#xff0c;用户投诉&#xff0c;简直是我们开发者的噩梦。别光看价格&#xff01;先想清楚你的核心需求在选…

MoonBit 正式加入 WebAssembly Component Model 官方文档 !

我们非常高兴地宣布&#xff0c;MoonBit 已正式收录在 WebAssembly Component Model 的官方文档中。这不仅是对 MoonBit 技术路线的一次肯定&#xff0c;也让我们有机会和 Rust、Go、C# 等语言一起&#xff0c;出现在开发者查阅组件模型的入口页面中。一、 关于 WebAssembly Co…

Python快速入门专业版(三十二):匿名函数:lambda表达式的简洁用法(结合filter/map)

目录引一、lambda表达式的基本语法&#xff1a;一行代码定义函数示例1&#xff1a;lambda表达式与普通函数的对比二、lambda表达式的应用场景&#xff1a;临时与灵活1. 临时使用&#xff1a;无需定义函数名的简单功能2. 作为参数传递给高阶函数三、结合filter()&#xff1a;筛选…

【LeetCode 每日一题】3025. 人员站位的方案数 I——(解法一)暴力枚举

Problem: 3025. 人员站位的方案数 I 文章目录整体思路完整代码时空复杂度时间复杂度&#xff1a;O(N^3)空间复杂度&#xff1a;O(1)整体思路 这段代码旨在解决一个几何计数问题&#xff1a;给定平面上的 n 个点&#xff0c;计算满足特定条件的“点对” (i, j) 的数量。 根据代…