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

LeetCode刷题日志-73矩阵置零

在这里插入图片描述
思路一:
用一个同样大小的矩阵记录0的位置,然后遍历矩阵置0,
空间复杂度为O(mn)

class Solution {public void setZeroes(int[][] matrix) {int [][] matrix_new = new int[matrix.length][matrix[0].length];for(int i=0 ; i < matrix.length;i++){for(int j = 0 ; j < matrix[0].length ; j++){matrix_new[i][j] = 1;}}for(int i = 0; i < matrix.length;i++){for(int j = 0 ; j < matrix[0].length ; j++){if(matrix[i][j] == 0){for(int k=0 ; k < matrix[0].length ; k++){matrix_new[i][k] = 0;}for(int k=0 ; k < matrix.length ; k++){matrix_new[k][j] = 0;}}}}for(int i = 0 ; i < matrix.length;i++){for(int j = 0 ; j < matrix[0].length ; j++){if(matrix_new[i][j] != 0){matrix_new[i][j] = matrix[i][j];}}}for(int i = 0 ; i < matrix.length;i++){for(int j = 0 ; j < matrix[0].length ; j++){matrix[i][j] = matrix_new[i][j];}}}
}

表现一般般
在这里插入图片描述
咱们优化一下,思路2:
通过观察我们发现,只要一个元素为0,那么它所在的行和列都为0。我们只需记录下来所有0元素的行和列,就能将矩阵置0。
那么空间复杂度为O(m+n)

class Solution {public void setZeroes(int[][] matrix) {int m = matrix.length , n = matrix[0].length;Set<Integer> rows = new HashSet<Integer>();//最大为mSet<Integer> columns = new HashSet<Integer>();//最大为nfor(int i = 0 ; i < m ; i++){for(int j = 0 ;j < n ; j++){if(matrix[i][j] == 0){rows.add(i);columns.add(j);}}}for(Integer i : rows){for(int j = 0 ; j < n ; j++){matrix[i][j] = 0;}}for(Integer i : columns){for(int j = 0 ; j < m ; j++){matrix[j][i] = 0;}}}
}

相对比与思路一,有所进步
在这里插入图片描述
思路三:再思考观察,我们发现,除去第一行和第一列,若元素matrix[i][j]为0,那么matrix[i][0]与matrix[0][j]也必0。我们就可以利用第一行第一列记录需要置0的行和列。原地置零,空间复杂度O(1)。

class Solution {public void setZeroes(int[][] matrix) {int row = matrix.length;int col = matrix[0].length;boolean row0_flag = false;boolean col0_flag = false;// 第一行是否有零for (int j = 0; j < col; j++) {if (matrix[0][j] == 0) {row0_flag = true;break;}}// 第一列是否有零for (int i = 0; i < row; i++) {if (matrix[i][0] == 0) {col0_flag = true;break;}}// 把第一行第一列作为标志位for (int i = 1; i < row; i++) {for (int j = 1; j < col; j++) {if (matrix[i][j] == 0) {matrix[i][0] = matrix[0][j] = 0;}}}// 置0for (int i = 1; i < row; i++) {for (int j = 1; j < col; j++) {if (matrix[i][0] == 0 || matrix[0][j] == 0) {matrix[i][j] = 0;}}}if (row0_flag) {for (int j = 0; j < col; j++) {matrix[0][j] = 0;}}if (col0_flag) {for (int i = 0; i < row; i++) {matrix[i][0] = 0;}} }
}

在这里插入图片描述
不知道为什么表现没有思路2的好。

相关文章:

LeetCode刷题日志-73矩阵置零

思路一&#xff1a; 用一个同样大小的矩阵记录0的位置&#xff0c;然后遍历矩阵置0&#xff0c; 空间复杂度为O&#xff08;mn&#xff09; class Solution {public void setZeroes(int[][] matrix) {int [][] matrix_new new int[matrix.length][matrix[0].length];for(int …...

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(四)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存4. 模型生成 系统测试1. 训练准确率2. 测试效果 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客&#xff…...

文件操作及函数

什么是文件&#xff1f; 在程序设计中&#xff0c;文件有两种&#xff1a;程序文件和数据文件。 程序文件 包括源程序文件&#xff08;.c&#xff09;&#xff0c;目标文件&#xff08;.obj&#xff09;&#xff0c;可执行程序(.exe)。 数据文件 文件的内容不一定是程序&…...

阿里云国际版无法远程连接Windows服务器的排查方法

如果您遇到紧急情况&#xff0c;需要尽快登录Windows实例&#xff0c;请参见以下操作步骤&#xff0c;先检查ECS实例的状态&#xff0c;然后通过云助手向Windows实例发送命令或通过VNC登录实例&#xff0c;具体步骤如下&#xff1a; 步骤一&#xff1a;检查ECS实例状态 无论何…...

华清远见嵌入式学习——QT——作业4

作业要求&#xff1a; 代码运行效果图&#xff1a; 代码&#xff1a; 头文件&#xff1a; #ifndef ALARMCLOCK_H #define ALARMCLOCK_H#include <QWidget> #include <QTimerEvent> #include <QTimer> #include <QTime> #include <QTextToSpeech&g…...

Visuial Studio 打开 Unity 脚本时,脚本继承MonoBehaviour暂时失效为白色的解决方法

问题描述&#xff1a; u3d2020.3.47f1c1 vs2019 之前C#脚本A好好的&#xff0c;今天改了一行代码&#xff0c;在储存&#xff0c;就出现这个问题了&#xff0c;变白之后&#xff0c;新增的一行代码不生效&#xff0c;之前的代码照常运行。 如下办法都不能解决我的问题&…...

CentOS使用kkFileView实现在线预览word excel pdf等

一、环境安装 1、安装LibreOffice wget https://downloadarchive.documentfoundation.org/libreoffice/old/7.5.3.2/rpm/x86_64/LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar.gz # 解压缩 tar -zxf LibreOffice_7.5.3.2_Linux_x86-64_rpm.tar cd LibreOffice_7.5.3.2_Linux_x86…...

黑豹程序员-EasyExcel实现导出

需求 将业务数据导出到excel中&#xff0c;老牌的可以选择POI&#xff0c;也有个新的选择EasyExcel。 有个小坑&#xff0c;客户要求样式比较美观&#xff0c;数字列要求千位符&#xff0c;保留2位小数。 可以用代码实现但非常繁琐&#xff0c;用模板就特别方便&#xff0c;模…...

【项目小结】优点分析

一、 个人博客系统 一&#xff09;限制强制登录 问题&#xff1a;限制用户登录后才能进行相关操作解决&#xff1a; 1&#xff09;前端&#xff1a; ① 写一个函数用于判断登录状态&#xff0c;如果返回的状态码是200就不进行任何操作&#xff0c;否则Ajax实现页面的跳转操作…...

已经写完的论文怎么降低查重率 papergpt

大家好&#xff0c;今天来聊聊已经写完的论文怎么降低查重率&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 已经写完的论文怎么降低查重率 背景介绍 在学术界&#xff0c;论文的查重率是评价论文质量的…...

科研论文中PPT图片格式选择与转换:EPS、SVG 和 PDF 的比较

当涉及论文中的图片格式时&#xff0c;导师可能要求使用 EPS 格式的图片。EPS&#xff08;Encapsulated PostScript&#xff09;是一种矢量图格式&#xff0c;它以 PostScript 语言描述图像&#xff0c;能够无损地缩放并保持图像清晰度。与像素图像格式&#xff08;如 PNG 和 J…...

mybatis xml 热部署

平时我们在项目中多多少少会根据不同的情况等等原因去调试sql&#xff0c;在数据库测试完后也需要在代码里面运行测试&#xff0c;但是每次修改就需要重启服务就显得太繁琐&#xff0c;所以如果mybatis的xml也可以热部署当然是最好的了&#xff0c;那我来试试如何可以将mybatis…...

MySQL的事务以及springboot中如何使用事务

事务的四大特性&#xff1a; 概念&#xff1a; 事务 是一组操作的集合&#xff0c;它是不可分割的工作单元。事务会把所有操作作为一个整体&#xff0c;一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 注意&#xff1a; 默认MySQ…...

docker二 redis单机安装

创建文件夹 mkdir -p /usr/local/redis/data /usr/local/redis/logs /usr/local/redis/conf chmod -R 777 /usr/local/redis/data* chmod -R 777 /usr/local/redis/logs*另一种风格 # 创建 redis 配置存放目录 mkdir -p /home/docker/redis/conf && chmod 777 /home/…...

【解决】Vue elementUI table表格 列错位/滑动后切换每页显示数后错位/表格使用fixed后错位...

table表格右侧列固定后&#xff0c;在切换页面之后&#xff0c;就会出现列错误的现象 <el-tablev-adaptive"{ bottomOffset: 85 }"height"100px"v-loading"loading":data"dataList"> 解决方法 方法一 1、给表格添加ref &…...

uniapp实战 —— 分类导航【详解】

效果预览 组件封装 src\pages\index\components\CategoryPanel.vue <script setup lang"ts"> import type { CategoryItem } from /types/index defineProps<{list: CategoryItem[] }>() </script><template><view class"category&…...

LangChain学习二:提示-实战(下半部分)

文章目录 上一节内容&#xff1a;LangChain学习二&#xff1a;提示-实战&#xff08;上半部分&#xff09;学习目标&#xff1a;提示词中的示例选择器和输出解释器学习内容一&#xff1a;示例选择器1.1 LangChain自定义示例选择器1.2 实现自定义示例选择器1.2.1实战&#xff1a…...

Network 灰鸽宝典【目录】

目前已有文章 21 篇 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 服务配置环境部署GitNPM 浏览器编辑器系…...

基于SSM的实验室排课系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…...

Docker部署wordpress和Jenkins

准备机器&#xff1a; 192.168.58.151 &#xff08;关闭防火墙和selinux&#xff09; 安装好docker服务 &#xff08;详细参照&#xff1a;http://t.csdnimg.cn/usG0s 中的国内源安装docker&#xff09; 部署wordpress: 创建目录&#xff1a; [rootdocker ~]# mkdi…...

FRED应用:背散射教程

这个教程描述一个有散射性质的简单plano-plano透镜&#xff0c;这样一条入射光就会散射回发射方向。教程首先&#xff0c;在FRED中创建一个新的系统&#xff0c;在树视图中的Geometry上右击&#xff0c;选择“Create New Lens…”并在出现的对话框上点OK按钮&#xff0c;在全局…...

从Harness走向Coordination,openJiuwen社区发布JiuwenSwarm,引领多智能体协作新范式

刚刚&#xff0c;华为支持的开源 AI Agent 平台社区 openJiuwen 发布并开源了 JiuwenSwarm。 这是一个面向多智能体协作的蜂群智能体。让多个 AI 智能体像蜂群一样高效协作、自主演进&#xff0c;正式按下 "群体智能" 的加速键&#xff0c;开启 AI 时代的 "养蜂…...

苹果Siri 2025全面升级:从LLM集成到系统级智能体的技术路径解析

1. 项目概述&#xff1a;一次迟来的“大脑”升级最近&#xff0c;关于苹果Siri将在2025年迎来全面优化的消息&#xff0c;在圈内引发了不小的讨论。作为一名长期关注智能交互领域发展的从业者&#xff0c;我对此并不感到意外&#xff0c;反而觉得这是一次“虽迟但到”的必要手术…...

告别手写轮播!用vue-j-scroll插件5分钟搞定Vue列表无缝滚动(含鼠标悬停控制)

5分钟极速集成&#xff1a;用vue-j-scroll实现Vue列表智能滚动方案 在数据密集型的现代Web应用中&#xff0c;动态列表展示几乎成为标配需求。无论是后台管理系统的操作日志、金融平台的实时交易流水&#xff0c;还是新闻客户端的资讯推送&#xff0c;流畅的自动滚动效果不仅能…...

UE5新手也能搞定的Niagara特效:用模板10分钟做出一个会动的烟雾

UE5 Niagara特效速成&#xff1a;10分钟打造动态烟雾的极简指南 第一次打开Unreal Engine的Niagara特效系统时&#xff0c;我被密密麻麻的节点和参数吓退了三次。直到发现模板库里的"Simple Sprite Burst"&#xff0c;才意识到原来制作专业级特效可以如此简单——就像…...

无王无帝定乾坤,来自田间第一人 道统传承兴万民

无王无帝定乾坤 来自田间第一人 华夏千载文脉绵延&#xff0c;万古道统源远流长&#xff0c;自古圣贤立心传道&#xff0c;只为正本清源、润泽苍生。往昔道统多依附王权存续&#xff0c;受朝堂礼制所拘&#xff0c;流传受限&#xff0c;难入寻常百姓之家&#xff0c;普惠世间之…...

Boomi 与 Gong 达成合作,将 Revenue AI 引入 Boomi Agentstudio

Gong 的 Revenue AI 现已原生集成至 Boomi Enterprise Platform 面向 AI 时代的数据激活公司 Boomi 今日宣布&#xff0c;与 Revenue AI 领域领导者 Gong 达成合作&#xff0c;将 Gong 捕获的营收信号原生整合至 Boomi Enterprise Platform。通过此次合作&#xff0c;企业可构…...

如何快速掌握LRC Maker:新手制作精准同步歌词的完整指南

如何快速掌握LRC Maker&#xff1a;新手制作精准同步歌词的完整指南 【免费下载链接】lrc-maker 歌词滚动姬&#xff5c;可能是你所能见到的最好用的歌词制作工具 项目地址: https://gitcode.com/gh_mirrors/lr/lrc-maker 在数字音乐时代&#xff0c;你是否曾想为自己喜…...

【NotebookLM因子分析实战指南】:3步解锁AI驱动的维度降维与业务洞察力

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM因子分析辅助的底层逻辑与价值定位 NotebookLM 是 Google 推出的面向研究者的 AI 助手&#xff0c;其核心能力并非泛化式问答&#xff0c;而是基于用户上传文档进行“可信引用驱动”的深度推…...

MRI绕组结构设计及均匀度优化算法【附算法】

✨ 长期致力于MRI、均匀度、球面谐波、目标场、主被动匀场、优化算法、超导磁体、线性规划、非线性规划研究工作&#xff0c;擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;点击《获取方式》 &#xff08;1&#xff0…...