力扣73(java)-矩阵置零(中等)
题目:
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。


提示:
m == matrix.length
n == matrix[0].length
1 <= m, n <= 200
-231 <= matrix[i][j] <= 231 - 1
进阶:
一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。
一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。
你能想出一个仅使用常量空间的解决方案吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/set-matrix-zeroes
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
一、
1.遍历数组,用两个标记数组记录每一行每一列是否有0出现,如果有0,则标记为true;
2.再次遍历数组,如果遇到标记数字,则把它所在的行和列都置零。
代码:

二、
1.使用两个标记变量,将数组第一行和第一列为零的元素进行标记;
2.使用其他行和列,将第一行和列的元素置零;
3.根据第一行和列的0元素,将0元素对应的行和列置0;
4.最后根据第一行第一列所做标记,将第一行和第一列的其他元素置0。
代码:
1 class Solution {
2 public void setZeroes(int[][] matrix) {
3 int m = matrix.length;
4 int n = matrix[0].length;
5 boolean row = false;
6 boolean col = false;
7 //先标记第一行和第一列的0元素
8 for(int i = 0; i < m; i++){
9 if(matrix[i][0] == 0){
10 col = true;
11 }
12 }
13 for(int j = 0;j < n; j++){
14 if(matrix[0][j] == 0){
15 row = true;
16 }
17 }
18 //使用其他行和列将第一行和列的元素置零
19 for(int i = 1; i < m; i++){
20 for(int j = 1; j < n; j++){
21 if(matrix[i][j] == 0){
22 matrix[i][0] = 0;
23 matrix[0][j] = 0;
24 }
25 }
26 }
27 //根据第一行和列的0元素,将0元素对应的行和列置0
28 for(int i = 1; i < m; i++){
29 for(int j = 1; j < n; j++){
30 if(matrix[i][0] == 0){
31 matrix[i][j] = 0;
32 }
33 if(matrix[0][j] == 0){
34 matrix[i][j] = 0;
35 }
36 }
37 }
38 //最后根据第一行第一列所做标记,将第一行和第一列的其他元素置0
39 if(row){
40 for(int i = 0; i < n; i++){
41 matrix[0][i] = 0;
42 }
43 }
44 if(col){
45 for(int i = 0; i < m; i++){
46 matrix[i][0] = 0;
47 }
48 }
49 }
50 }


力扣73(java)-矩阵置零(中等)的更多相关文章
- 【LeetCode 73】矩阵置零
题目链接 [题解] 如果a[i][j]==0. 就把第i行的第一个数字置为0 然后把第j列的第一个数字置为0 最后再处理下每行第一个为0的行.每列第一个为0的列. (第一行和第一列都得用同一个位置处理 ...
- Java实现 LeetCode 73 矩阵置零
73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ...
- LeetCode:矩阵置零【73】
LeetCode:矩阵置零[73] 题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], ...
- leetcode 73 矩阵置零 Python
矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1 ...
- 【python】Leetcode每日一题-矩阵置零
[python]Leetcode每日一题-矩阵置零 [题目描述] 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 .请使用 原地 算法. 进阶: 一个直观的解 ...
- 力扣—set matrix zeroes (矩阵置零) python实现
题目描述: 中文: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 英文: Given a m x n matrix, if an eleme ...
- leetcode.矩阵.73矩阵置零-Java
1. 具体题目 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: 输出:[ [ [1,1,1], [1,0,1], [ ...
- leetcode[73] Set Matrix Zeroes 将矩阵置零
给定一个矩阵,把零值所在的行和列都置为零.例如: 1 2 3 1 3 1 1 1 操作之后变为 1 3 0 0 0 1 1 方法1: 赋值另存一个m*n的矩阵,在原矩阵为零的值相应置新的矩阵行和列为零 ...
- leetcode刷题-73矩阵置零
题目 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: ...
- 073 Set Matrix Zeroes 矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0 ,则将这个元素所在的行和列都置零.你有没有使用额外的空间?使用 O(mn) 的空间不是一个好的解决方案.使用 O(m + n) 的空间有所改善,但仍不 ...
随机推荐
- linux 环境 打包 失败,一次解决过程
发现打包失败 测试发现 npm run build 打包失败 发现问题1 node_modules 库 没装 rm -rf node_modules 进行 npm install 安装失败 发现lin ...
- C++标准库字符串流sstream
sstream与strstream 在C++有两种字符串流,一种在<strstream>中定义,另一种在<sstream>中定义,两者的区别如下: strstream里包含st ...
- electron 下网页获取 micphone 权限
网页获取麦克风或摄像头权限我们只需调用 navigator.mediaDevices.getUserMedia 方法就可唤起浏览器用户授权 const useMicphone = async () = ...
- 3DCAT亮相WAIC 2022浦东分会场——元宇宙博览会暨数字光影大会
以"智联世界 元生无界"为主题的2022世界人工智能大会于9月3日下午圆满闭幕.与此同时,由上海市多媒体行业协会.深圳市数字创意与多媒体行业协会主办,上海天盛会展有限公司承办的WA ...
- ImageSharp 一个全新的、功能齐全的、完全托管的、跨平台的 2D 图形库
ImageSharp 是一个全新的.功能齐全的.完全托管的.跨平台的 2D 图形库.ImageSharp 旨在简化图像处理,为您带来了一个功能强大而又非常简单的 API. 可以实现很多功能,如:缩放, ...
- SpringBoot使用org.springframework.util监控java代码执行耗时时长
public class StopWatchTask { public static void main(String[] args){ //创建一个计时器 StopWatch stopWatch = ...
- KingbaseES 服务器运行参数分类
Kingbase 服务器运行参数分类 说明: KingbaseES 数据库中,服务器运行参数分为多种类型,有些是系统初始化时设置,有些可以在系统运行时设置,有些可以在运行session中进行直接设置. ...
- 探索多种数据格式:JSON、YAML、XML、CSV等数据格式详解与比较
1. 数据格式介绍 数据格式是用于组织和存储数据的规范化结构,不同的数据格式适用于不同的场景.常见的数据格式包括JSON.YAML.XML.CSV等. 数据可视化 | 一个覆盖广泛主题工具的高效在线平 ...
- 服创杯 【A15】智能信号灯-交通流疏导控制系统【融创软通】数据流图
- System.gc 之后到底发生了什么 ?
本文基于 OpenJDK17 进行讨论 在 JDK NIO 针对堆外内存的分配场景中,我们经常会看到 System.gc 的身影,比如当我们通过 FileChannel#map 对文件进行内存映射的时 ...