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

Javascript每天一道算法题(十八)——矩阵置零-中等

文章目录

  • 1、问题
  • 2、示例
  • 3、解决方法
    • (1)方法1——标记数组


1、问题

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

2、示例

示例 1:
输入:matrix = [[1,1,1],[1,0,1],[1,1,1]]
输出:[[1,0,1],[0,0,0],[1,0,1]]
111 101
101 => 000
111 101
在这里插入图片描述

示例 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]]
0120 0000
3452 => 0450
1215 0310
在这里插入图片描述

3、解决方法

(1)方法1——标记数组

思路:
1:用两个标记数组分别记录每一行和每一列是否有零出现。
2:遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true
3:最后我们再次遍历该数组,用标记数组更新原数组即可。

let matrix = [[0,1,2,0],[3,4,5,2],[1,3,1,5]]
var setZeroes = function(matrix) {// 1:获取x,y轴的长度let y = matrix.length; // 1-1:二维数组的长度(矩阵y轴的长度)let x = matrix[0].length; // 1-2:一维数组的长度(矩阵x轴的长度)// 2:获取行和列的长度(注意:行的长度由列决定)let row = new Array(y).fill(false); // 2-1: 行(行的长度是列的多少决定的,如示例二有四列,行为4)let col = new Array(x).fill(false); // 2-2: 列(列的长度是行的多少决定的,如示例二有三行,列为3)// 3:双层遍历该数组,如果其中有一个元素为0,将当前的行和列改为truefor(let i =0;i<y;i++){for(let j =0;j<x;j++){if(matrix[i][j] == 0){row[i] = col[j] = true}}}// 4:再次双层循环该数组,将之前标记为true的数据设置为0for(let i =0;i<y;i++){for(let j =0;j<x;j++){if(row[i] || col[j]){matrix[i][j] = 0}}}// 5:输出结果console.log('zz', matrix);
};

相关文章:

Javascript每天一道算法题(十八)——矩阵置零-中等

文章目录 1、问题2、示例3、解决方法&#xff08;1&#xff09;方法1——标记数组 1、问题 给定一个 y x x 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 2、示例 示例 1&#xff1a; 输入&#xff1a;matrix [[…...

基于ROS开发的开源项目

基于ROS (Robot Operating System) 开发的开源项目很多&#xff0c;其中一些已经在机器人领域内非常知名。以下是一些比较著名的例子&#xff1a; Autoware: Autoware 是一个开源的自动驾驶车辆的软件栈&#xff0c;提供了从3D地图表示、环境感知&#xff08;如障碍物、行人检测…...

kafka精准一次、事务、幂等性

Kafka事务 消息中间件的消息保障的3个级别 At most once 至多一次。数据丢失。At last once 至少一次。数据冗余Exactly one 精准一次。好&#xff01;&#xff01;&#xff01; 如何区分只要盯准提交位移、消费消息这两个动作的时机就可以了。 当&#xff1a;先消费消息、…...

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法

centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法 一.centos 7.9 操作系统安装 参考&#xff1a;https://blog.csdn.net/qq_46015509/article/details/134572030?utm_sourceminiapp_weixin 安装完成后用后台连接工具连上虚拟机 二.安装python3 …...

Motion Plan之基于采样的路径规划算法笔记

Motion Plan之搜索算法笔记 背景&#xff1a; 基于采样算法是一种在路径规划中广泛应用的有效方法。它通过在图中随机选择点来生成一个简化的搜索图&#xff0c;从而加速搜索过程。这种方法的主要优点包括减少内存使用&#xff0c;避免计算错误&#xff0c;具有动态障碍物对抗…...

idea里面常用插件

这里列出了一系列常用的 IntelliJ IDEA 插件&#xff0c;它们可以提高开发效率、简化操作&#xff0c;以及帮助进行代码分析和优化。以下是每个插件的简要介绍&#xff1a; GenerateAllSetter&#xff1a;生成对象的所有 set 方法和 get 方法&#xff0c;方便对象之间的转换。该…...

回归算法优化过程推导

假设存在一个数据集&#xff0c;包含工资、年龄及贷款额度三个维度的数据。我们需要根据这个数据集进行建模&#xff0c;从而在给定工资和年龄的情况下&#xff0c;实现对贷款额度的预测。其中&#xff0c;工资和年龄是模型构建时的两个特征&#xff0c;额度是模型输出的目标值…...

某高品质房产企业:借助NineData平台,统一数据库访问权限,保障业务安全

该企业是中国领先的优质房产品开发及生活综合服务供应商。在 2022 年取得了亮眼的业绩表现&#xff0c;销售额市场占有率跻身全国前五。业务涵盖房产开发、房产代建、城市更新、科技装修等多个领域。 2023 年&#xff0c;该企业和玖章算术&#xff08;浙江&#xff09;科技有限…...

Arduio开发STM32所面临的风险

据说micro_ros用到了arduino,然后用arduino搞stm32需要用到这个Arduino STM32的东西&#xff0c;然后这里申明了&#xff1a;这些代码没有经过严格测试&#xff0c;如果是向心脏起搏器&#xff0c;自动驾驶这样要求严格的的情况下&#xff0c;这个东西不能保证100%不发生问题&a…...

精准人脉引流软件的开发流程与涉及到的技术

一、精准人脉引流软件的开发流程 1. 确定需求&#xff1a;首先&#xff0c;我们需要明确软件的需求&#xff0c;包括目标用户、功能需求、性能需求等。这些需求将直接影响到软件的开发方向和最终效果。 2. 系统设计&#xff1a;根据需求&#xff0c;进行系统设计&#xff0c;…...

Mysql数据库 20.DCL数据控制语言

因这类SQL语言开发人员操作较少&#xff0c;主要是数据库管理员&#xff08;DBA&#xff09;使用&#xff0c;所以前文没有提及&#xff0c;这篇文章进行补充说明 DCL数据控制语言 用来管理数据库用户&#xff0c;控制数据库的访问权限 1.管理用户 1.1 查询用户 select * f…...

使用CMake交叉编译Arm Linux程序

下载安装aarch64-linux-gnu-gcc arm交叉编译工具链 apt-get install aarch64-linux-gnu-gccapt-get install aarch64-linux-gnu-gcc创建编译目录构建makefle 注意&#xff0c;工具链文件的指定一定要紧跟cmake命令之后&#xff0c;不能放到 … 后面构建arm架构cmake mkdir arm…...

训练日志——logging

目录 基础使用日志的6个级别打印日志修改打印级别 高级应用logging的组成记录器Loggers处理器Handlers过滤器Filterformatter格式创建关联打印日志 配置文件参考 基础使用 日志的6个级别 打印日志 import logginglogging.debug(调试日志) logging.info(消息日志) logging.war…...

尺度为什么是sigma?

我们先看中值滤波和均值滤波。 以前&#xff0c;我认为是一样的&#xff0c;没有区分过。 他们说&#xff0c;均值滤波有使图像模糊的效果。 中值滤波有使图像去椒盐的效果。为什么不同呢&#xff1f;试了一下&#xff0c;果然不同&#xff0c;然后追踪了一下定义。 12345&…...

迭代器模式

自定义 Counter 结构体类型&#xff0c;并实现迭代器。其他语言的场景&#xff0c;读取数据库行数据时&#xff0c;使用的就是迭代器。我们使用for语言遍历数组&#xff0c;也是一种迭代。 结构体对象实现 Iterator trait&#xff0c;创建自定义的迭代器&#xff0c;只需要实现…...

C++ 修饰符、存储类、运算符、循环、判断

一、C修饰符类型&#xff1a; C允许在char、int、double数据类型前放置修饰符。 数据类型修饰符&#xff1a; ◆ signed&#xff1a;表示变量可以存储负数。对于整型变量来说&#xff0c;signed 可以省略&#xff0c;因为整型变量默认为有符号类型。 ◆ unsigned&#xff1…...

2023 hnust 湖南科技大学 信息安全管理课程 期中考试 复习资料

前言 ※老师没画重点的补充内容★往年试卷中多次出现或老师提过的&#xff0c;很可能考该笔记是奔着及格线去的&#xff0c;不是奔着90由于没有听过课&#xff0c;部分知识点不一定全&#xff0c;答案不一定完全正确 题型 试卷有很多题是原题 判断题&#xff08;PPT&#xff…...

N皇后问题解的个数

暴力递归 #include <stdio.h>int count0,a[15],flag; void queen(int,int); int main(){int n;scanf("%d",&n);queen(n,n);printf("%d",count); } void queen(int n,int n0){if(n<1){flag1;for(int i1;i<n0;i){for(int j1;j<n0;j){if(…...

php订单发起退款(余额和微信支付)

index.html <a class="btn btn-danger btn-change btn-tuikuan btn-disabled" href="javascript:;"><i class="fa fa-tuikuan"></i> 订单退款</a>-->order.js // 为表格绑定事件Table.api.bindevent(table);//退款…...

【SpringCloud】认识微服务、服务拆分以及远程调用

SpringCloud 1.认识微服务 1.1单体架构 单体架构&#xff1a;将业务的所有功能集中在一个项目中开发&#xff0c;打成一个包部署 单体架构的优缺点&#xff1a; 优点&#xff1a; 架构简单&#xff0c;部署成本低 缺点&#xff1a; 耦合度高&#xff08;维护困难&#x…...

从零理解软件无线电:用GNU Radio仿真带你搞懂AM调制与解调全过程

从零理解软件无线电&#xff1a;用GNU Radio仿真带你搞懂AM调制与解调全过程 在通信工程领域&#xff0c;软件无线电&#xff08;SDR&#xff09;技术正以前所未有的方式重塑着信号处理的边界。不同于传统硬件无线电设备需要专用电路实现每个功能模块&#xff0c;SDR将大部分处…...

告别搜狗输入法后,如何在Ubuntu 16.04上快速配置ibus-pinyin或fcitx-sunpinyin

Ubuntu 16.04中文输入法深度配置指南&#xff1a;从框架选择到效率优化 在Linux桌面环境中&#xff0c;中文输入体验一直是用户关注的焦点。当Ubuntu 16.04用户告别第三方输入法后&#xff0c;系统自带的输入法框架往往能提供更稳定、更轻量的解决方案。本文将深入探讨如何在Ub…...

从模型部署反推:为什么你的GPU显存总是不够用?聊聊Params、FLOPs与显存占用的真实关系

从模型部署反推&#xff1a;为什么你的GPU显存总是不够用&#xff1f;聊聊Params、FLOPs与显存占用的真实关系 当你兴冲冲地将训练好的模型部署到生产环境时&#xff0c;是否经常遇到这样的场景&#xff1a;明明参数量&#xff08;Params&#xff09;看起来不大&#xff0c;但G…...

收藏!小白程序员轻松上手AI Agent,一周搞定3个业务系统,效率飙升!

本文分享了作者利用6个开源AI Agent项目&#xff08;Auto-GPT、GPT Engineer、Voyager、Open Interpreter、TaskWeaver、LangChain&#xff09;在一周内完成3个业务系统开发的经验。作者详细介绍了使用这些工具的过程、遇到的挑战以及如何克服它们&#xff0c;并总结了AI Agent…...

如何3步彻底清理Windows右键菜单:ContextMenuManager终极优化指南

如何3步彻底清理Windows右键菜单&#xff1a;ContextMenuManager终极优化指南 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否也曾为Windows右键菜单的混乱…...

s2-pro语音合成多语言支持:中英日韩混合文本语音生成实测教程

s2-pro语音合成多语言支持&#xff1a;中英日韩混合文本语音生成实测教程 1. 前言&#xff1a;为什么选择s2-pro 如果你正在寻找一款专业级的语音合成工具&#xff0c;s2-pro绝对值得你关注。作为Fish Audio开源的专业级语音合成模型镜像&#xff0c;它不仅支持常规的文本转语…...

Sentaurus仿真效率翻倍:详解Physics和Math模块里那些被你忽略的参数(以NPN仿真为例)

Sentaurus仿真效率翻倍&#xff1a;详解Physics和Math模块里那些被你忽略的参数&#xff08;以NPN仿真为例&#xff09; 在半导体器件仿真领域&#xff0c;Sentaurus作为行业标杆工具&#xff0c;其强大的功能背后往往隐藏着许多未被充分利用的性能优化参数。许多工程师在完成基…...

思源宋体:7款完全免费中文字体,开启你的专业设计之旅 [特殊字符]

思源宋体&#xff1a;7款完全免费中文字体&#xff0c;开启你的专业设计之旅 &#x1f3a8; 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为寻找高质量的中文字体而烦恼吗&#…...

告别手动转换!用Python+Mikeio一键将ERA5风场数据喂给MIKE模型(附完整代码)

从ERA5到MIKE模型&#xff1a;Python自动化风场数据处理实战指南 每次手动转换气象数据格式时&#xff0c;那些重复的点击操作和容易出错的坐标调整是否让你感到疲惫&#xff1f;当项目周期紧张而数据处理却占据大半时间&#xff0c;工程师们真正需要的是像流水线一样可靠的数据…...

Degrees of Lewdity汉化版终极教程:3步解决中文配置难题

Degrees of Lewdity汉化版终极教程&#xff1a;3步解决中文配置难题 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localization …...