LeetCode73.矩阵置零

server/2024/11/13 9:30:49/

题目链接:

73. 矩阵置零 - 力扣(LeetCode)

分析:普通的模拟问题,我们按照题目的要求进行模拟,把需要的位置置0即可。

算法思路:题目要求原地计算,所以迁移这个矩阵是不现实的。这里引出一种比较常用的思路,我们首先定义两个一位数组,分别表示对应的行、列出现的0的个数。例如下面代码中的v1,其中v1[i]表示第i行出现的0的个数;同理v2[j]表示第j列出现的0的个数,这样一来问题被极大的简化了。

我们遍历整个矩阵,统计每一行、列是否出现了0,出现一次则对标记做一个对应的修改。遍历结束以后。我们再次遍历,对每个元素,我们可以在O(1)的时间内得知其所在的行/列是否有0,如果有则直接将该元素也修改为0;否则该元素不变。处理完成后,就得到了最终的结果。

参考代码:

class Solution {
public:void setZeroes(vector<vector<int>>& matrix) {int m=matrix.size(),n=matrix[0].size();//统计矩阵的边长vector<int>v1(m,0);//表示各行出现0的情况vector<int>v2(n,0);//表示各列出现0的情况for(int i=0;i<m;++i)for(int j=0;j<n;++j)if(matrix[i][j]==0){//遍历矩阵 统计各行/列出现0的次数v1[i]++;v2[j]++;}for(int i=0;i<m;++i)for(int j=0;j<n;++j){if(v1[i]>0||v2[j]>0)//对于每个元素 如果所在的行/列有0 那么把该元素置0matrix[i][j]=0;}}
};


http://www.ppmy.cn/server/41855.html

相关文章

yaml配置文件的在深度学习中的简单应用

1 .创作灵感 小伙伴们再阅读深度学习模型的代码的时候&#xff0c;经常会遇到yaml格式的配置文件。用这个配置文件是因为我们在训练模型的时候会涉及很多的参数&#xff0c;如果这些参数东一个&#xff0c;西一个&#xff0c;我们调起来的时候就会很不方便&#xff0c;所以用y…

vue3和vite

vue3 1、vue3使如何实现效率提升的 客户端渲染效率比vue2提升了1.3~2倍 SSR渲染效率比vue2提升了2~3倍 1.1、静态提升 解释&#xff1a; 1. 对于静态节点&#xff08;如&#xff1a;<h1>接着奏乐接着舞</h1>&#xff09;&#xff0c;vue3直接提出来了&#xff…

GIN框架_请求参数

请求参数 1. Get请求参数 使用Get请求传参时&#xff0c;类似于这样 http://localhost:8080/user/save?id11&namezhangsan。 如何获取呢&#xff1f; 1.1 普通参数 request url: http://localhost:8080/user/save?id11&namezhangsan r.GET("/user/save&qu…

收藏与品鉴:精酿啤酒的艺术之旅

啤酒&#xff0c;这一古老的酒精饮品&#xff0c;不仅是人们生活中的日常饮品&#xff0c;更是一种艺术和文化的载体。对于Fendi club啤酒而言&#xff0c;收藏与品鉴更是一门深入骨髓的艺术之旅。 Fendi club啤酒的收藏&#xff0c;不仅仅是简单的存放和保管&#xff0c;而是一…

Leecode热题100---15:三数之和为零

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。 请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的…

搜维尔科技:【案例分享】Xsens用于工业制造艺术创新设计平台

用户名称&#xff1a;北京理工大学 主要产品&#xff1a;Xsens MVN Awinda惯性动作捕捉系统 在设计与艺术学院的某实验室内&#xff0c;通过Xsens惯性动作捕捉&#xff0c;对人体动作进行捕捉&#xff0c;得到人体三维运动数据&#xff0c;将捕到的数据用于后续应用研究。…

国学经典 书籍推荐

国学经典书籍浩如烟海&#xff0c;涵盖了哲学、历史、文学、语言学等多个方面&#xff0c;以下是一些被广泛认为是必读的经典推荐&#xff1a; 儒家经典 《论语》&#xff1a;记录孔子及其弟子言行&#xff0c;儒家思想的核心著作。《孟子》&#xff1a;孟子的言行录&#xff0…

【使用Condition来模拟生产消费】

使用Condition来模拟生产消费 1. 关于ReentrantLock 和condition的认知?2.使用condition实现生产者-消费者1. 关于ReentrantLock 和condition的认知? /*Q: ReentrantLock是如何实现管理锁和线程的?A: ReentrantLock是并发包中 一个类,它实现了Lock接口,提供了比内置synch…