leetcode Top100(17)矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 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]]
package TOP11_20;import java.util.HashSet;
import java.util.Set;// 矩阵置零
//给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。
// 输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
//输出:[[1,0,1],[0,0,0],[1,0,1]]
public class Top18 {// 用两个hash表记录行和列为0的数据 然后再修改数组值public static void setZeroes(int[][] matrix) {Set colZeroSets = new HashSet();Set rowZeroSets = new HashSet();int row = matrix.length;int height = matrix[0].length;for (int i = 0; i < row; i++) {for (int j = 0; j < height; j++) {if (matrix[i][j] == 0) {colZeroSets.add(i);rowZeroSets.add(j);}}}for (int i = 0; i < row; i++) {for (int j = 0; j < height; j++) {if (colZeroSets.contains(i) || rowZeroSets.contains(j)) {matrix[i][i] = 0;}}}}// 直接用第一行和第一列 来记录,但先将第一行和第一列是否有为0的数据记录下来 然后再赋值,最后赋值第一行和第一列public static void setZeroes2(int[][] matrix) {int row = matrix.length;int height = matrix[0].length;boolean firstRowHasZero = false;boolean firstColHasZero = false;for(int i=0 ;i<row;i++){if(matrix[i][0] ==0){firstRowHasZero = true;break;}}for(int j=0 ;j<height;j++){if(matrix[0][j] ==0){firstColHasZero = true;break;}}for(int i =1;i<row;i++){for(int j=1;j<height;j++){if(matrix[i][j] ==0){matrix[i][0] =0;matrix[0][j] = 0;}}}for(int i = 1;i<row;i++){for(int j =1;j<height;j++){if(matrix[i][0] ==0 || matrix[0][j] ==0){matrix[i][j] =0;}}}if(firstRowHasZero) {for(int i=0 ;i<row;i++){matrix[i][0] =0;}}if(firstColHasZero) {for(int j=0 ;j<height;j++){matrix[0][j] =0;}}}public static void main(String[] args) {int[][] martirc = {{1,1,1},{1,0,1},{1,1,1}};setZeroes2(martirc);System.out.println("end");}
}
harryptter / LeetcodeTop100 · GitCode
相关文章:
leetcode Top100(17)矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2: 输入&…...
论文精读(2)—基于稀疏奖励强化学习的机械臂运动规划算法设计与实现(内含实现机器人控制的方法)
目录 1.作者提出的问题及解决方向 2.延深-用如何用强化学习对机器人进行控制 2.1思路 2.2DQN和DDPG在机器人控制中的应用 3.解决方案 3.1思路 3.2实验 3.3创新点 4.展望 1.作者提出的问题及解决方向 目的:使机械臂在非结构化环境下实现端到端的自主学习控制…...
快速安装keepalive
快速安装keepalive #安装 yum install keepalived -y# 查看版本: rpm -q -a keepalived#修改配置文件 vim /etc/keepalived.conf虚拟 ip :随意选一个,不被占用的ip即可。...
nginx实现反向代理实例
1 前言 1.1 演示内容 在服务器上访问nginx端口然后跳转到tomcat服务器 1.2 前提条件 前提条件:利用docker安装好nginx、tomcat、jdk8(tomcat运行需要jdk环境) 只演示docker安装tomcat: 默认拉取最新版tomcat docker pull t…...
使用Freemarker填充模板导出复杂Excel,其实很简单哒!
文章目录 1. 需求分析2. 对象生成3. 列表插值4. 另存xml格式化5. ftl修改6. 程序转化7. 犯的错误8. 总结 1. 需求分析 类似这样的一个表格 我们需要从数据库中查询对应的数据,将其汇总进该表格,并且可能还需要复制表格项,我这个案例中没有&a…...
windows环境下安装logstash同步数据,注册系统服务
windows环境下安装logstash同步数据,注册系统服务 此方法适用于Windows环境,同一个配置文件配置多个管道,并且配置系统服务,防止程序被杀进程 一、安装logstash (1)下载压缩包,解压后修改con…...
java服务内存说明及配置详解
java进程内存 JVM内存分布图: 【java进程内存】【堆外内存】 【jvm堆内存】 【堆外内存】 【Metaspace】 【Direct Memory】【JNI Memory】【code_cache】 … 堆外内存泄漏的排查在于【本地内存(Native Memory)】【Direct Memory】【JNI Memory】 一般…...
Mybatis-MyBatis的缓存
Mybatis-MyBatis的缓存 一、MyBatis的一级缓存二、MyBatis的二级缓存二级缓存的相关配置 三、MyBatis缓存查询的顺序 一、MyBatis的一级缓存 一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就 会从…...
计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。
大家好,欢迎阅读《计算机组成原理》的系列文章,本系列文章主要的内容是从零学习计算机组成原理,内容通俗易懂,大家好好学习吧!!! 更多的优质内容,请点击以下链接查看哦~~ ↓ ↓ ↓ …...
二十五、MySQL事务的四大特性和常见的并发事务问题
1、事务的四大特性 2、常见的并发事务问题 (1)并发事务问题分类: (2)脏读: 一个事务正在对一条记录做修改,在这个事务完成并提交前,这条记录的数据就处于不一致的状态;…...
辨析常见的医学数据分析(相关性分析回归分析)
目录 1 常见的三种分类结果? 2 什么是相关性分析? 相关性分析的结果怎么看? 3 什么是回归分析? 1)前提 2)常见的回归模型 4 对于存在对照组实验的医学病例如何分析? 1)卡方检验…...
SpringBoot项目中只执行一次的任务写法
SpringBoot项目中只执行一次的任务写法 有时候我们需要进行初始化工作,就说明只要进行一次的工作,那么,在Springboot项目中如何做到任务只进行一次呢 利用定时任务 在Spring Boot项目中,你可以使用Spring框架提供的Scheduled注解…...
TCK、TMS、TDI、TDO的含义
这四个信号是JTAG(Joint Test Action Group)界面的一部分。JTAG是一种用于测试和验证集成电路和印刷电路板的技术,也用于进行设备编程和调试。这四个信号分别是: TCK (Test Clock): 意义:测试时钟ÿ…...
R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据...
全文链接:http://tecdat.cn/?p24456 如果你正在进行统计分析:想要加一些先验信息,最终你想要的是预测。所以你决定使用贝叶斯(点击文末“阅读原文”获取完整代码数据)。 相关视频 但是,你没有共轭先验。你…...
【PowerShell】PowerShell的Core版本的额外配置
在PowerShell 7.1 安装完成后,默认情况下打开PowerShell 会直接进入到系统内置的PowerShell,如果希望通过远程连接或者PowerShell Web Access 进入到PowerShell 7环境的界面,就需要进行环境的再配置才能实现PowerShell 7.1 的环境连接。需要为外部的环境提供连接的话需要按照…...
数据结构----链式栈
目录 前言 链式栈 操作方式 1.存储结构 2.初始化 3.创建节点 4.判断是否满栈 5.判断是否空栈 6.入栈 7.出栈 8.获取栈顶元素 9.遍历栈 10.清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法,(链接:线性表-----栈(栈…...
实在智能携手40+央企,探索财务大模型及数智化实践与应用
“这次培训给我一个最大的感触就是,过去以为AI智能化、大模型技术是很高深的事情。但现在,我们通过RPA等数字化工具,自主根据自己的工作岗位,完成业务自动化流程的开发和设计。AI技术没有想象中的那么难入门。” 这是一位参加了“…...
upload-labs文件上传1-5关
第一关 编写一句话木马1.php,编写完成后将后缀名修改为png 将1.png上传,上传时使用bp抓包 抓包后将后缀名修改为png 连接蚁剑 第二关 上传1.php,显示文件类型不正确 使用bp抓包发送重发器,修改文件后缀名后点击发送,…...
git的基本使用
查看当前分支 git branch //查看本地分支 git branch -a // 查看本地和远程的分支切分支 git checkout -b 分支的名字从当前分支切换到其他分支 拉取远程分支到本地 拉取远程develop分支代码到本地develop分支 git checkout -b develop origin/developgit merge B分支合并…...
Mac台式电脑内存清理方法教程
对于一些小白用户,如果觉得以上的清理方法比较复杂却又想要更好的优化Mac电脑内存,专业的系统清理软件是一个不错的选择。比起花几个小时时间浏览文件夹、删除临时文件、缓存和卸载残留。Cleanmymac X,只需单击几下即可完成所有内存清理工作&…...
Makefile 入门与 C/C++ 项目构建指南
Makefile 入门与 C/C 项目构建指南 本文面向 C/C 初学者与日常维护多文件工程的开发者,系统说明 GNU Make 与 Makefile 的作用、执行逻辑、常用语法与可复用模板,帮助从「手动敲 gcc」过渡到可维护的自动化构建,并具备阅读、修改常见开源项目…...
为什么92%的FastAPI AI服务在流式响应阶段丢失OAuth2 scope校验?——基于200+生产环境trace数据的权威归因分析
第一章:FastAPI 2.0异步AI流式响应安全性最佳方案总览在 FastAPI 2.0 中,原生支持 async/await 与 StreamingResponse 的深度集成,使大语言模型(LLM)推理结果可实现低延迟、内存友好的逐 token 流式返回。但流式响应天…...
基于hadoop+spark+hive的高校科研项目管理系统的设计与实现
前言在高校科研项目管理领域,传统管理方式逐渐显露出诸多问题,亟待更为有效的解决方案。本研究聚焦于此,尝试借助 Python、Django、Vue 以及 MySQL 等技术,探索设计并实现一款高校科研项目管理系统。 研究过程中,运用文…...
技术深度:G-Helper实现华硕笔记本精准散热控制与性能调优的架构解析
技术深度:G-Helper实现华硕笔记本精准散热控制与性能调优的架构解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, T…...
3分钟掌握Windows安卓应用安装:免费轻量级APK安装器完全指南
3分钟掌握Windows安卓应用安装:免费轻量级APK安装器完全指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用却不想安装…...
网络设备唯一身份证:MAC地址原理与作用全网最详解析
网络设备唯一身份证:MAC地址原理与作用全网最详解析 前言一、MAC地址:核心定义1.1 标准定义1.2 通俗理解1.3 核心特性 二、MAC地址:表示格式2.1 标准格式2.2 组成结构(两大部分)2.3 结构流程图 三、MAC地址:…...
用快马ai快速构建你的第一个endnote式文献管理原型
最近在写论文时,突然意识到需要个简单的文献管理工具。虽然EndNote这类专业软件功能强大,但对于快速记录和引用参考文献来说,有时候只需要一个轻量级的解决方案。于是我在InsCode(快马)平台上尝试用HTML、CSS和JavaScript快速搭建了一个原型&…...
重启 CSDN 两周复盘:从 0 到 10700 + 阅读,37 岁老码农的内容创作实战
从 3 月 23 日正式重启 CSDN,到今天 4 月 6 日,整整两周时间。从最初的「码龄 14 年,重新出发」,到现在累计10700 总阅读量、155 分原力值,这两周的每一步,都是我对「个人技术品牌」的真实实践,…...
Python flask django框架的医疗问诊拿药系统
目录同行可拿货,招校园代理 ,本人源头供货商功能分析:基于Flask/Django的医疗问诊拿药系统核心模块划分技术实现要点数据安全与合规扩展性设计项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作同行可拿货,招校园代理 …...
Wan2.2-I2V-A14B模型生成复古像素艺术与游戏角色Sprite
Wan2.2-I2V-A14B模型生成复古像素艺术与游戏角色Sprite 1. 复古像素艺术的魅力重现 还记得小时候玩红白机时,那些由简单像素点构成的游戏世界吗?虽然画面简单,但那些8-bit和16-bit风格的图像却承载着我们最美好的游戏记忆。如今,…...
