每日一题163——矩阵置零

news2024/9/30 11:27:33

给定一个 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) 的额外空间,但这仍然不是最好的解决方案。
你能想出一个仅使用常量空间的解决方案吗?

解题思路:

使用标记数组

分别记录每一行和每一列是否有零出现。

具体地,我们首先遍历该数组一次,如果某个元素为 0,那么就将该元素所在的行和列所对应标记数组的位置置为 true。最后我们再次遍历该数组,用标记数组更新原数组即可。

代码:

class Solution {
public:
    void setZeroes(vector<vector<int>>& matrix) {
        int m = matrix.size(),n = matrix[0].size();
        vector<bool> row(m),col(n);
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(matrix[i][j] == 0){
                    row[i] = col[j] = true;
                }
            }
        }
        for(int i=0;i<m;i++){
            for(int j=0;j<n;j++){
                if(row[i] || col[j]){
                    matrix[i][j] = 0;
                }
            }
        }
    }
};

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

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

相关文章

Docker与Docker-compose安装Vulfocus Vulhub漏洞环境

目录 一.docker 和 docker-compose 介绍&#xff1a; docker&#xff1a; docker-compose&#xff1a; 二者的区别&#xff1a; 二者的联系&#xff1a; 二者的总结&#xff1a; 二.Centos 7安装Docker 三.Centos 7安装docker-compose 四.docker-compose搭建Vulhub漏…

Linux安装MySQL后无法通过IP地址访问处理方法

本文主要总结Linux安装Mysql后&#xff0c;其他主机访问不了MySQL数据库的原因和解决方法 环境说明&#xff1a; MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 创建完Mysql数据库后可以查看mysql 日志获取root 用户登录密码 [rootlocalhost mysql-5.7.30]# cat /var/l…

2 机器学习知识 Softmax回归 deep learning system

机器学习算法的三个主要部分 The hypothesis class: 模型结构loss fuction 损失函数An optimization method&#xff1a;在训练集上减小loss的方法 多分类问题 训练数据&#xff1a; x ( i ) ∈ R n , y ( i ) ∈ 1 , . . . , k f o r i 1 , . . . m x^{(i)}\in \mathbb{R}…

在Fedora-Workstation-Live-x86_64-36-1.5中编译安装信使iptux0.7.6

在Fedora-Workstation-Live-x86_64-36-1.5中编译安装信使iptux0.7.6 https://github.com/iptux-src/iptux/tree/v0.7.6 下载信使iptux-0.7.6.zip&#xff0c;类似飞鸽传书ipmsg&#xff0c;已经尝试过0.8.3版本不成功 [rootfedora ~]# unzip /home/ruhong/download/iptux-0.7…

usb摄像头驱动-core层driver.c

usb摄像头驱动-core层driver.c 文章目录 usb摄像头驱动-core层driver.cusb_bus_typeusb_device_matchusb_uevent usb_register_driver 在ubuntu中接入罗技c920摄像头打印的信息如下&#xff1a; 在内核中&#xff0c;/driver/usb/core/driver.c 文件扮演了 USB 核心驱动程序管…

自动化遍历测试技术之android maxim遍历测试工具

这里写目录标题 一、问题1、例如app中存在问题2、解决方法3、改进策略4、自动遍历测试5、常见遍历工具与技术 二、android maxim 遍历测试工具策略使用环境预备命令行模式策略 三、android fastbot 遍历测试工具使用 一、问题 业务线众多 业务流程复杂 依赖传统券商一些资源 …

2023年最新软件测试面试题,自动化测试面试题,接口自动化测试面试题详解,对标大厂。

【软件测试面试题】 1、你的测试职业发展是什么&#xff1f;   测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程…

软件测试之性能测试

性能测试是与时间相关的。 主要内容 性能测试基础概念和术语介绍性能测试模型性能测试分类介绍性能测试实施与管理 性能测试基础 为什么要进行性能测试&#xff08;WHY&#xff09;&#xff08;最重要&#xff09; 应用程序是否能够很快的响应用户的要求&#xff1f;应用程…

【C程序设计】——程序=算法+数据结构

目录 &#x1f34a;&#x1f34a;一、什么是算法&#xff1f; &#x1f34a;&#x1f34a;二、简单的算法举例 &#x1f34a;&#x1f34a;三、算法的特性 &#x1f34a;&#x1f34a;四、怎样表示一个算法 一个程序主要包括以下两方面的信息&#xff1a; &#xff08;1&am…

软件测试项目实战经验附视频以及源码【商城项目,app项目,电商项目,银行项目,医药项目,金融项目】

前言&#xff1a; ​​大家好&#xff0c;我是凡叔。 很多初学的测试小白都在烦恼找不到合适的项目去练习&#xff0c;这也是难倒大部分测试小白的一个很常见的问题&#xff0c;项目经验确实是每一个测试非常宝贵的经验&#xff01;这里凡叔给大家找了一些常用的项目合集&…

数据结构与算法十二 图进阶

一 有向图 在实际生活中&#xff0c;很多应用相关的图都是有方向性的&#xff0c;最直观的就是网络&#xff0c;可以从A页面通过链接跳转到B页面&#xff0c;那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题&#xff0c;它和我们之前…

行业集体迈进全屋智能,华为的“空间智能跃升”独领风骚?

智能家居近年来发展飞速&#xff0c;市场正在从最初的单品智能向全屋联动智能切换。 据IDC数据&#xff0c;2022年中国全屋智能市场销售额突破100亿元&#xff0c;同比增长54.9%。一个住宅往往由卧室、客厅、厨房、卫生间、餐厅等多个基本功能区组成&#xff0c;全屋智能便是在…

企业进行产品管理内训至少有这5大好处

企业需要重视产品管理&#xff0c;建立完善的产品管理流程和标准&#xff0c;提高员工的产品管理能力&#xff0c;以应对各种挑战和机遇&#xff0c;在企业进行内训是最好的方式。 企业进行产品管理内训的目的是为了提高员工的产品管理能力&#xff0c;从而实现以下几个方面的好…

ChatGPT创始人采访 | GPT-4报告中文版

关于采访OpenAl Co创始人 Greg Brockman的要点记录分析&#xff0c;先介绍Gpt-4的基本内容&#xff0c;然后说下采访的重点部分&#xff0c;最后读一下154页Gpt-4的技术报告&#xff0c;这个大家可以在官网下载文档后&#xff0c;百度翻译支持每人限量一次的PDF翻译。面对文心一…

图(课堂笔记)

图的引入与术语 两种图 1. 有向图&#xff08;Digraph&#xff09;&#xff1a;Each edge of arc has an associated direction. 2. 无向图&#xff08;non-directed graph&#xff09;&#xff1a;Every edge or arc is two-way. 简单图是一种特殊的无向图。无向图没有自环…

即时设计是一款什么软件,有什么优势

即时设计是什么软件 即时设计是一款「专业UI设计工具」&#xff0c;不受平台限制&#xff0c;打开浏览器即可开始创作。它不仅具备精细化设计能力&#xff0c;还自带丰富的共享设计资源&#xff0c;同时支持多人实时协作、设计成果一键分享交付&#xff0c;让设计师在工作中每…

C++:使用位图处理海量数据

目录 一. 什么是位图 1.1 海量数据处理问题 1.2 位图的概念 二. 位图的实现 2.1 成员变量及成员函数 2.2 成员函数的实现 2.3 位图模拟实现完整代码 三. 关于位图处理海量数据的几个面试题 一. 什么是位图 1.1 海量数据处理问题 问题&#xff1a;假设有30亿个不重复的…

QT 学习笔记1 创建一个简单的cmd窗口界面

QT creator最大的特点是把界面和逻辑分开了 视频&#xff1a; 3、开发工具-QtCreator 目录 0、新建一个应用项目的步骤 一、设计相关&#xff1a; 1、控件 布局 Layouts 垫子 Spacers ​编辑 按钮 Buttons 单元视图 Item Views(Model-Based) 单元控件 Item Widgets(…

2023年美、英仍是最受欢迎的留学目标国家,硕士占比76%

2023年申请出国留学的时间已经不远了&#xff0c;要想顺利实现留学梦想&#xff0c;希望你能够把握好以下几个要点&#xff1a; 首先&#xff0c;要清楚自己的留学目标&#xff0c;要考虑到自己的学习能力、英语水平、专业设置、学费等因素&#xff0c;以便挑选一个最合适的国…

startActivityForResult被标记为废弃?Activity Result API闪亮登场!

本文已同步发表于我的微信公众号&#xff0c;搜索 代码说 即可关注&#xff0c;欢迎与我沟通交流。 文章目录 startActivityForResult()被标记为过时registerForActivityResult替代方案使用示例ActivityResultContract 场景自定义ActivityResultContract 源码浅析registerForAc…