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

矩阵置零(力扣)思维 JAVA

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。

在这里插入图片描述

输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]

在这里插入图片描述

输入: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
-2^31 <= matrix[i][j] <= 2^31 - 1

进阶:

一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
你能想出一个仅使用常量空间的解决方案吗?

解题思路:

1、本题涵盖了int类型的所有数据范围,所以不能简单的用-1做叠加态

2、设立两个布尔数组,当某个位置的值为零那么便用布尔数组标记此行,此列

3、再次遍历数组,被标记的行列制零即可

代码:

class Solution {public void setZeroes(int[][] matrix) {int m = matrix.length;int n = matrix[0].length;boolean fx[] = new boolean[m];boolean fy[] = new boolean[n];for(int i = 0; i < m; i ++)for(int j = 0; j < n; j ++)if(matrix[i][j] == 0) {fx[i] = true;fy[j] = true;}for(int i = 0; i < m; i ++)for(int j = 0; j < n; j ++)if(fx[i] == true || fy[j] == true) matrix[i][j] = 0;}
}

在这里插入图片描述

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

相关文章:

  • centos制作openssh 9.3p2 rpm包
  • uni-app:切换页面刷新,返回上一页刷新(onShow钩子函数的使用)
  • 全志F1C200S嵌入式驱动开发(调整cpu频率和dram频率)
  • idea 设置了 vm options后无法启动
  • TPS54620RHLR是一款同步降压转换器
  • 主机漏洞利用演示MS17-010(永恒之蓝)
  • 2023年第六届河北省研究生数学建模竞赛题目B题Python求解代码
  • 【三维点云处理】顶点、面片、邻接矩阵、邻接距离矩阵以及稀疏存储概念
  • ansible 中的fetch模块的作用是什么
  • Zabbix-6.4.4部署及监控配置
  • 解决 npm ERR! missing script: build 错误的方法
  • json-server创建静态服务器2
  • 开源视频监控管理平台国标GB28181视频EasyCVR电子地图功能展示优化
  • 端口复用与重映射
  • ros2 launch 集合 gazebo yolov8 rviz2
  • SD NAND【商业】
  • 实现任意进制(2—32)转换
  • Spring Boot 集成 Redis 三种模式实践汇总
  • MySQL DQL语法
  • 算法之线性表1.1.1(7)带头结点链表的反向输出
  • 设计模式三:抽象工厂模式(Abstract Factory Pattern)
  • Linux用户权限问题详解
  • flask中的session介绍
  • 记录联想拯救者R720重装系统
  • Spring Alibaba Sentinel实现集群限流demo
  • 102、SOA、分布式、微服务之间有什么关系和区别?
  • Ubuntu 20.04下的录屏与视频剪辑软件
  • 面试题 -- iOS数据存储
  • spring复习:(51)environment、systemProperties、systemEnvironment三个bean是在哪里被添加到容器的?
  • element ui 上传控件携带参数到后端