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

leetcode Top100(17)矩阵置零

给定一个 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]]
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 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1],[1,1,1]] 输出&#xff1a;[[1,0,1],[0,0,0],[1,0,1]]示例 2&#xff1a; 输入&…...

论文精读(2)—基于稀疏奖励强化学习的机械臂运动规划算法设计与实现(内含实现机器人控制的方法)

目录 1.作者提出的问题及解决方向 2.延深-用如何用强化学习对机器人进行控制 2.1思路 2.2DQN和DDPG在机器人控制中的应用 3.解决方案 3.1思路 3.2实验 3.3创新点 4.展望 1.作者提出的问题及解决方向 目的&#xff1a;使机械臂在非结构化环境下实现端到端的自主学习控制…...

快速安装keepalive

快速安装keepalive #安装 yum install keepalived -y# 查看版本&#xff1a; rpm -q -a keepalived#修改配置文件 vim /etc/keepalived.conf虚拟 ip :随意选一个&#xff0c;不被占用的ip即可。...

nginx实现反向代理实例

1 前言 1.1 演示内容 在服务器上访问nginx端口然后跳转到tomcat服务器 1.2 前提条件 前提条件&#xff1a;利用docker安装好nginx、tomcat、jdk8&#xff08;tomcat运行需要jdk环境&#xff09; 只演示docker安装tomcat&#xff1a; 默认拉取最新版tomcat docker pull t…...

使用Freemarker填充模板导出复杂Excel,其实很简单哒!

文章目录 1. 需求分析2. 对象生成3. 列表插值4. 另存xml格式化5. ftl修改6. 程序转化7. 犯的错误8. 总结 1. 需求分析 类似这样的一个表格 我们需要从数据库中查询对应的数据&#xff0c;将其汇总进该表格&#xff0c;并且可能还需要复制表格项&#xff0c;我这个案例中没有&a…...

windows环境下安装logstash同步数据,注册系统服务

windows环境下安装logstash同步数据&#xff0c;注册系统服务 此方法适用于Windows环境&#xff0c;同一个配置文件配置多个管道&#xff0c;并且配置系统服务&#xff0c;防止程序被杀进程 一、安装logstash &#xff08;1&#xff09;下载压缩包&#xff0c;解压后修改con…...

java服务内存说明及配置详解

java进程内存 JVM内存分布图: 【java进程内存】【堆外内存】 【jvm堆内存】 【堆外内存】 【Metaspace】 【Direct Memory】【JNI Memory】【code_cache】 … 堆外内存泄漏的排查在于【本地内存&#xff08;Native Memory&#xff09;】【Direct Memory】【JNI Memory】 一般…...

Mybatis-MyBatis的缓存

Mybatis-MyBatis的缓存 一、MyBatis的一级缓存二、MyBatis的二级缓存二级缓存的相关配置 三、MyBatis缓存查询的顺序 一、MyBatis的一级缓存 一级缓存是SqlSession级别的&#xff0c;通过同一个SqlSession查询的数据会被缓存&#xff0c;下次查询相同的数据&#xff0c;就 会从…...

计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。

大家好&#xff0c;欢迎阅读《计算机组成原理》的系列文章&#xff0c;本系列文章主要的内容是从零学习计算机组成原理&#xff0c;内容通俗易懂&#xff0c;大家好好学习吧&#xff01;&#xff01;&#xff01; 更多的优质内容&#xff0c;请点击以下链接查看哦~~ ↓ ↓ ↓ …...

二十五、MySQL事务的四大特性和常见的并发事务问题

1、事务的四大特性 2、常见的并发事务问题 &#xff08;1&#xff09;并发事务问题分类&#xff1a; &#xff08;2&#xff09;脏读&#xff1a; 一个事务正在对一条记录做修改&#xff0c;在这个事务完成并提交前&#xff0c;这条记录的数据就处于不一致的状态&#xff1b;…...

辨析常见的医学数据分析(相关性分析回归分析)

目录 1 常见的三种分类结果&#xff1f; 2 什么是相关性分析&#xff1f; 相关性分析的结果怎么看&#xff1f; 3 什么是回归分析&#xff1f; 1&#xff09;前提 2&#xff09;常见的回归模型 4 对于存在对照组实验的医学病例如何分析&#xff1f; 1&#xff09;卡方检验…...

SpringBoot项目中只执行一次的任务写法

SpringBoot项目中只执行一次的任务写法 有时候我们需要进行初始化工作&#xff0c;就说明只要进行一次的工作&#xff0c;那么&#xff0c;在Springboot项目中如何做到任务只进行一次呢 利用定时任务 在Spring Boot项目中&#xff0c;你可以使用Spring框架提供的Scheduled注解…...

TCK、TMS、TDI、TDO的含义

这四个信号是JTAG&#xff08;Joint Test Action Group&#xff09;界面的一部分。JTAG是一种用于测试和验证集成电路和印刷电路板的技术&#xff0c;也用于进行设备编程和调试。这四个信号分别是&#xff1a; TCK (Test Clock)&#xff1a; 意义&#xff1a;测试时钟&#xff…...

R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据...

全文链接&#xff1a;http://tecdat.cn/?p24456 如果你正在进行统计分析&#xff1a;想要加一些先验信息&#xff0c;最终你想要的是预测。所以你决定使用贝叶斯&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 相关视频 但是&#xff0c;你没有共轭先验。你…...

【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.清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法&#xff0c;&#xff08;链接&#xff1a;线性表-----栈&#xff08;栈…...

实在智能携手40+央企,探索财务大模型及数智化实践与应用

“这次培训给我一个最大的感触就是&#xff0c;过去以为AI智能化、大模型技术是很高深的事情。但现在&#xff0c;我们通过RPA等数字化工具&#xff0c;自主根据自己的工作岗位&#xff0c;完成业务自动化流程的开发和设计。AI技术没有想象中的那么难入门。” 这是一位参加了“…...

upload-labs文件上传1-5关

第一关 编写一句话木马1.php&#xff0c;编写完成后将后缀名修改为png 将1.png上传&#xff0c;上传时使用bp抓包 抓包后将后缀名修改为png 连接蚁剑 第二关 上传1.php&#xff0c;显示文件类型不正确 使用bp抓包发送重发器&#xff0c;修改文件后缀名后点击发送&#xff0c;…...

git的基本使用

查看当前分支 git branch //查看本地分支 git branch -a // 查看本地和远程的分支切分支 git checkout -b 分支的名字从当前分支切换到其他分支 拉取远程分支到本地 拉取远程develop分支代码到本地develop分支 git checkout -b develop origin/developgit merge B分支合并…...

Mac台式电脑内存清理方法教程

对于一些小白用户&#xff0c;如果觉得以上的清理方法比较复杂却又想要更好的优化Mac电脑内存&#xff0c;专业的系统清理软件是一个不错的选择。比起花几个小时时间浏览文件夹、删除临时文件、缓存和卸载残留。Cleanmymac X&#xff0c;只需单击几下即可完成所有内存清理工作&…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...