哈希--73. 矩阵置零/medium 理解度A

73. 矩阵置零

  • 1、题目
  • 2、题目分析
  • 3、复杂度最优解代码示例
  • 4、适用场景

1、题目

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 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]]
    

     

    提示:

    • m == matrix.length
    • n == matrix[0].length
    • 1 <= m, n <= 200
    • -231 <= matrix[i][j] <= 231 - 1

     

    进阶:

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

    2、题目分析

    3、复杂度最优解代码示例

        public void setZeroes(int[][] matrix) {Set<Integer> row_zero = new HashSet<>();Set<Integer> col_zero = new HashSet<>();int row = matrix.length;int col = matrix[0].length;for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (matrix[i][j] == 0) {row_zero.add(i);col_zero.add(j);}}}for (int i = 0; i < row; i++) {for (int j = 0; j < col; j++) {if (row_zero.contains(i) || col_zero.contains(j)) {matrix[i][j] = 0;}}}}

    4、适用场景

    矩阵置零的操作在多个领域都有广泛的应用,包括但不限于:

    1. 图像处理:在图像处理中,矩阵置零操作可以用于去除图像中的噪声,或者对图像进行二值化处理。
    2. 数据压缩:在线性代数和科学计算领域,矩阵置零操作可以用于稀疏矩阵的压缩存储,从而提高存储效率和计算速度。
    3. 机器学习:在机器学习中,矩阵置零操作可以用于特征选择,通过将某些特征的值设为0,可以忽略这些特征的影响,从而简化模型或提高模型的解释性。
    4. 算法设计:在编程领域,特别是在解决一些算法问题时,矩阵置零操作也是一种常见的技巧。例如,LeetCode上的73题“矩阵置零”就要求实现一个函数,将矩阵中某元素为0的行和列都置为0。
    5. 电路分析:在电路分析中,矩阵置零操作可以用于模拟电路中的开路故障,即某个节点出现故障时,将其对应的行和列都置为0,以模拟该节点与其他节点的连接断开。

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643289.shtml

    如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    $.ajax与同源策略

    1.jQuery中的ajax请求 学习Jquery中的ajax,我们借助官方文档 $.ajax(url,[settings]) | jQuery API 3.2 中文文档 | jQuery API 在线手册 使用$.ajax()方法完成图书案例 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&quo…

    mc我的世界服务器多少钱一个月?

    我的世界服务器多少钱一个月&#xff1f;低至7元一个月&#xff0c;阿里云和腾讯云均可以选择mc服务器&#xff0c;阿里云2核2G3M轻量服务器87元一年、腾讯云轻量2核2G3M服务器88元一年&#xff0c;阿里云ECS云服务器2核2G3M带宽99元一年&#xff0c;腾讯云2核4G5M带宽轻量应用…

    RabbitMQ中交换机的应用 ,原理 ,案例的实现

    &#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是平顶山大师&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《RabbitMQ中交换机的应用及原理&#xff0c;案…

    8.Gateway服务网关

    3.Gateway服务网关 Spring Cloud Gateway 是 Spring Cloud 的一个全新项目&#xff0c;该项目是基于 Spring 5.0&#xff0c;Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关&#xff0c;它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式…

    JVM工作原理与实战(二十五):堆的垃圾回收-垃圾回收算法

    专栏导航 JVM工作原理与实战 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、垃圾回收算法介绍 1.垃圾回收算法的历史和分类 2.垃圾回收算法的评价标准 二、垃圾回收算法详解 1.标记清除算法 2.复制算法 3.标记整理算法 4.分代垃圾回收算法 总结 前言…

    密码学的100个基本概念

    密码学作为信息安全的基础&#xff0c;极为重要,本文分为上下两部分&#xff0c;总计10个章节&#xff0c;回顾了密码学的100个基本概念&#xff0c;供小伙伴们学习参考。本文将先介绍前五个章节的内容。 一、密码学历史 二、密码学基础 三、分组密码 四、序列密码 五、哈希…

    生命在于折腾——WeChat机器人的研究和探索

    一、前言 2022年&#xff0c;我玩过原神&#xff0c;当时看到了云崽的QQ机器人&#xff0c;很是感兴趣&#xff0c;支持各种插件&#xff0c;查询游戏内角色相关信息&#xff0c;当时我也自己写了几个插件&#xff0c;也看到很多大佬编写的好玩的插件&#xff0c;后来因为QQ不…

    数据结构:搜索二叉树 | 红黑树 | 验证是否为红黑树

    文章目录 1.红黑树的概述2.红黑树的性质3.红黑树的代码实现3.1.红黑树的节点定义3.2.红黑树的插入操作3.3.红黑树是否平衡 黑红树是一颗特殊的搜索二叉树&#xff0c;本文在前文的基础上&#xff0c;图解红黑树插入&#xff1a;前文 链接&#xff0c;完整对部分关键代码展示&a…

    SG-8506CA 可编程晶体振荡器 (SPXO)

    输出: LV-PECL频率范围: 50MHz ~ 800MHz电源电压: 2.5V to 3.3V外部尺寸规格: 7.0 5.0 1.5mm (8引脚)特性:用户指定一个起始频率, 7-bit I2C 地址:用户可编程: I2C 接口:基频的高频晶体:低抖动PLL技术应用:OTN, BTS, 测试设备 规格&#xff08;特征&#xff09; *1 这包括初…

    Intel Atom + Artix-7 100T FPGA,CompactRIO单板控制器

    模拟和数字I/O&#xff0c;RMC&#xff0c;DisplayPort&#xff0c;1.33 GHz双核CPU&#xff0c;1 GB DRAM&#xff0c;4 GB存储容量&#xff0c;Artix-7 100T FPGA&#xff0c;CompactRIO单板控制器 CompactRIO控制器是搭载了实时处理器和用户可编程FPGA的嵌入式控制器。其产…

    Elasticsearch:聊天机器人、人工智能和人力资源:电信公司和企业组织的成功组合

    作者&#xff1a;来自 Elastic Jrgen Obermann, Piotr Kobziakowski 让我们来谈谈大型企业人力资源领域中一些很酷且改变游戏规则的东西&#xff1a;生成式 AI 和 Elastic Stack 的绝佳组合。 现在&#xff0c;想象一下大型电信公司的典型人力资源部门 — 他们正在处理一百万件…

    【Java IO】设计模式 (装饰者模式)

    Java I/O 使用了装饰者模式来实现。 装饰者模式 请参考装饰者模式详解 装饰者(Decorator)和具体组件(ConcreteComponent)都继承自组件(Component)&#xff0c;具体组件的方法实现不需要依赖于其它对象&#xff0c;而装饰者组合了一个组件&#xff0c;这样它可以装饰其它装饰者…

    022-安全开发-PHP应用留言板功能超全局变量数据库操作第三方插件引用

    022-安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用 #知识点&#xff1a; 1、PHP留言板前后端功能实现 2、数据库创建&架构&增删改查 3、内置超全局变量&HTML&JS混编 4、第三方应用插件&传参&对象调用 演示案例&a…

    cad二次开发autolisp(二)

    目录 一、选择集1.1 选择集的创建1.2 选择集的编辑1.3 操作选择集 二、命令行设置对话框2.1 设置图层2.2 加载线型2.3 设置字体样式2.4 设置标注样式&#xff08;了解即可&#xff09; 三、符号表3.1 简介3.2 符号表查找3.2 符号表删改增 一、选择集 定义&#xff1a;批量选择…

    苹果眼镜(Vision Pro)的开发者指南(5)-主要工具

    主要工具有:Xcode、Reality Composer Pro、Unity 第一部分:【用Xcode进行开发】 开始使用Xcode为visionOS进行开发。将向你展示如何在你现有的项目中添加一个visionOS目标,或者构建一个全新的应用,在Xcode预览中创建原型,以及从Reality Composer Pro中导入内容。还将分享…

    ComfyUI 基础教程(十一):秋葉aaaki 整合包 一键启动

    秋葉aaaki大佬的ComfyUI整合包,解压即用,一键启动,预置不少插件(工作流节点)。 1.使用方法 🌟链接:https://pan.quark.cn/s/ff5b759671d7 下载网盘文件(ComfyUI-aki-v1.1),解压缩即可。(秋葉文件包里面的controlnet和模型文件太大了,我删除了) 点击A绘世启动器.e…

    elementui 表单 resetFields 方法不生效问题解决

    问题 调用 elementui 官方提供的表单重置方法 resetFields 方法重置表单不生效&#xff0c;相信很多小伙伴都遇到过这个问题。 解决方法 检查代码看每个表单项的 prop 与 v-model 绑定的属性值命名是否相同&#xff0c;不相同的话就会导致 resetFields 方法不生效的问题&am…

    详细分析Java中的list.foreach()和list.stream().foreach()

    目录 前言1. 基本知识2. 差异之处2.1 执行顺序2.2 串行并行2.3 复杂数据处理2.4 CRUD集合2.5 迭代器 3. 总结4. 彩蛋 前言 典故来源于项目中使用了两种方式的foreach&#xff0c;后面尝试体验下有何区别&#xff01; 先看代码示例&#xff1a; 使用List的forEach&#xff1a…

    Tomcat 简介安装

    目录 1、概念介绍 Tomcat 组件 HTTP 请求过程 Tomcat 目录结构 Tomcat 命令 配置文件说明 2、安装环境 安装JDK 安装Tomcat 创建管理用户 3、搭建虚拟主机 1、概念介绍 端口&#xff1a;8080 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器, 按照 Sun 提供…

    全双工通信协议:WebSocket

    全双工通信协议&#xff1a;WebSockets 前言何时使用WebSocketsWebSocket APITextWebSocketHandlerWebSocketConfigurerWebSocket握手配置服务器允许的来源心跳包Java WebSocket API案例一&#xff1a;前端发送消息并接收后端响应案例二&#xff1a;模拟后端向前端推送消息案例…