当前位置: 首页 > 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

http://www.lryc.cn/news/174371.html

相关文章:

  • 论文精读(2)—基于稀疏奖励强化学习的机械臂运动规划算法设计与实现(内含实现机器人控制的方法)
  • 快速安装keepalive
  • nginx实现反向代理实例
  • 使用Freemarker填充模板导出复杂Excel,其实很简单哒!
  • windows环境下安装logstash同步数据,注册系统服务
  • java服务内存说明及配置详解
  • Mybatis-MyBatis的缓存
  • 计算机组成原理之硬件的基本组成,深入介绍两大计算机结构体系,从底层出发认识计算机。
  • 二十五、MySQL事务的四大特性和常见的并发事务问题
  • 辨析常见的医学数据分析(相关性分析回归分析)
  • SpringBoot项目中只执行一次的任务写法
  • TCK、TMS、TDI、TDO的含义
  • R语言RSTAN MCMC:NUTS采样算法用LASSO 构建贝叶斯线性回归模型分析职业声望数据...
  • 【PowerShell】PowerShell的Core版本的额外配置
  • 数据结构----链式栈
  • 实在智能携手40+央企,探索财务大模型及数智化实践与应用
  • upload-labs文件上传1-5关
  • git的基本使用
  • Mac台式电脑内存清理方法教程
  • FL Studio怎么破解?2023年最新FL Studio 21图文安装激活教程?FL 21中文版下载 v21.1.1.3750 汉化 版
  • Zookeeper高级_四字命令
  • /usr/bin/ld: cannot find -lmysqlcllient
  • 折线图geom_line()参数选项
  • 百度SEO优化基本原理(掌握SEO基础,提高网站排名)
  • 2023 ICPC 网络赛 第一场 部分题解 (待完善)
  • Hadoop的HDFS高可用方案
  • 【计算机基础】让我们重新认识一下Visual Stduio及其操作,知识点汇总!!
  • 使用Node构建私人代理池
  • 2023年“羊城杯”网络安全大赛 决赛 AWDP [Break+Fix] Web方向题解wp 全
  • 如何用好免费的ChatGPT