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

Leetcode Hot 100刷题记录 -Day14(矩阵置0)

矩阵置0

问题描述:

        给定一个 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]]

思路分析:

        先第一次扫描数组,找到为0的元素,然后将其所在的行和列进行标记(boolean true为0);再次扫描数组,将标记为true的数组元素置为0。

//提交版
class Solution {public int[][] setZeroes(int[][] matrix) {//矩阵的行数int m = matrix.length;//矩阵的列数int n = matrix[0].length;boolean[] row = new boolean[m];boolean[] col = new boolean[n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (matrix[i][j] == 0) {row[i] = true;col[j] = true;}}}for (int k = 0; k < m; k++) {for (int l = 0; l < n; l++) {if (row[k] || col[l]) {matrix[k][l] = 0;}}}return matrix;}
}//带有输入输出版本
import java.util.Arrays;public class hot15_setZeroes {public int[][] setZeroes(int[][] matrix) {//矩阵的行数int m = matrix.length;//矩阵的列数int n = matrix[0].length;boolean[] row = new boolean[m];boolean[] col = new boolean[n];for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (matrix[i][j] == 0) {row[i] = true;col[j] = true;}}}for (int k = 0; k < m; k++) {for (int l = 0; l < n; l++) {if (row[k] || col[l]) {matrix[k][l] = 0;}}}return matrix;}public static void main(String[] args){int[][] matrix = {{1,1,1},{1,0,1},{1,1,1}};System.out.println("输入:" + Arrays.deepToString(matrix));hot15_setZeroes hot15SetZeroes = new hot15_setZeroes();int[][] result = hot15SetZeroes.setZeroes(matrix);System.out.println("输出:" + Arrays.deepToString(result));}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Nacos未授权访问
  • 大工程师插件下载 官方地址
  • 【数据结构】十大经典排序算法总结与分析
  • Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器
  • C++ 常用设计模式
  • 有源滤波器UAF42
  • Golang协程泄漏定位和排查
  • 项目小总结
  • 在CentOS上搭建NFS服务器
  • rtmp推流
  • yolov8多任务模型-目标检测+车道线检测+可行驶区域检测-yolo多检测头代码+教程
  • 硬件工程师笔试面试——变压器
  • OpenAl o1论文:Let’s Verify Step by Step 快速解读
  • 模版进阶(template)
  • MySQL行转列
  • Android框架之Volley
  • crontab执行失败的多种原因
  • Druid 在有赞的实践
  • JavaScript标准库系列——Math对象和Date对象(二)
  • js算法-归并排序(merge_sort)
  • JS题目及答案整理
  • leetcode98. Validate Binary Search Tree
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Promise面试题2实现异步串行执行
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue--数据传输
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 前端之Sass/Scss实战笔记
  • 前言-如何学习区块链
  • 如何设计一个比特币钱包服务
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 正则与JS中的正则
  • hi-nginx-1.3.4编译安装
  • 交换综合实验一
  • 如何在招聘中考核.NET架构师
  • 通过调用文摘列表API获取文摘
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 整理一些计算机基础知识!
  • ​Distil-Whisper:比Whisper快6倍,体积小50%的语音识别模型
  • ​Java基础复习笔记 第16章:网络编程
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #if #elif #endif
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #微信小程序:微信小程序常见的配置传旨
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)Android开发优化---------UI优化
  • (备忘)Java Map 遍历
  • (二)springcloud实战之config配置中心
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (十)T检验-第一部分
  • (原)Matlab的svmtrain和svmclassify
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)项目管理杂谈-我所期望的新人
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换