hot100-腐烂的橘子

news/2025/2/10 9:15:29/文章来源:https://www.cnblogs.com/neromegumi/p/18707113

image
image

思路

每个腐烂橘子向四周感染一次,直到没有新鲜橘子所需的最少时间。其中一定设计图的遍历,那么是DFS还是BFS?因为要求一层层感染完的最少时间,所以用BFS。即把腐烂橘子放入队列,每次感染一波出队,再把新感染的入队,直到所有腐烂橘子都向四周感染过一次。

为了判断是否有橘子永远不会被感染,还要记录一开始的新鲜橘子数。

代码

  • 遍历所有橘子,腐烂入队,新鲜的让新鲜橘子数+1
  • BFS框架
class Solution {
public: int orangesRotting(vector<vector<int>>& grid) {int fresh=0;// 有多少个新鲜橘子——最后判断是否有橘子永远不会腐烂int times=0;queue<pair<int,int>> q;int m=grid.size();int n=grid[0].size();for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]==2){q.push({i,j});}else if(grid[i][j]==1){fresh++;}}}vector<vector<int>> dirs = {{-1,0},{1,0},{0,-1},{0,1}};while(!q.empty()){int num = q.size();bool rotten=false;//这一层有橘子被腐烂了才能让时间++for(int i=0;i<num;i++){auto x = q.front();q.pop();for(auto dir : dirs){int i=x.first + dir[0];int j=x.second + dir[1];if(i>=0&&i<m&&j>=0&&j<n&&grid[i][j]==1){fresh--;rotten = true;grid[i][j]=2;q.push({i,j});}}}if(rotten==true)times++;}return fresh==0 ? times : -1;}
};

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

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

相关文章

DeepSeek-Janus-Pro环境搭建推理测试

引子 北京时间1月28日凌晨,近期爆红的国产大模型DeepSeek在GitHub平台发布了Janus-Pro多模态大模型,这是继Janus发布之后的一次较大幅度升级。该款大模型是2024年11月13日发布的JanusFlow大模型的高级版本。相比前一代模型,Janus-Pro优化了训练策略、扩展了训练数据,模型也…

在 PyTorch 中理解词向量,将单词转换为有用的向量表示

你要是想构建一个大型语言模型,首先得掌握词向量的概念。幸运的是,这个概念很简单,也是本系列文章的一个完美起点。 那么,假设你有一堆单词,它可以只是一个简单的字符串数组。 animals = ["cat", "dog", "rat", "pig"] 你没法直接…

解决 virsh 无法通过 console 登录虚拟机

报错信息解决方法 登录虚拟机 通过 vnc 或者 ssh登录虚拟机 在虚拟机中执行已执行内容 echo "ttyS0" >> /etc/securetty echo "S0:12345:respawn:/sbin/agetty ttyS0 115200, 1152000 xterm" >>/etc/inittab grub2.cfg grep kernel /etc/grub2…

【分享】Ftrans内外网数据交换方案:打破网络边界,高效融合数据!

随着网络技术和互联网技术的成熟和高速发展,来自互联网的安全威胁越来越严重。数据隔离对很多企业来说并不陌生,越来越多的企业选择网络隔离技术来保护网络安全,而在500强企业中,使用网络隔离技术的企业几乎是绝对性的占比。网络隔离后,仍存在数据交换的需求,内外网数据交…

[gym 102428] Fabricating Sculptures

前言 现在补题是不是不太好 思路 转化题意给定列数 \(S\) , 方块数 \(B\) , 求一种摆放方式, 使得每一列的方块数 \(a_i\) 满足 \(a_i \geq 1\) 且 \(a_i\) 呈非严格单峰观察单峰函数的性质, 发现如果按行处理, 就是单调不增的 更一般的, 每一行放置的方块数非严格小于上一行放…

重做 CF906E Reverses

不是,JJ 怎么退役了,悲。 嗯,先有\[dp_{r}=\min_{l=1}^r[s(l,r)\text{是回文串,且长度不为 2}]dp_{l-1}+1 \] 总复杂度就 \(n^2\),考虑优化 然后有引理说,一个字符串的所有 border 构成 \(\log n\) 个等差数列 我们考虑什么样的点能够转移到 \(dp_i\)尝试借助 \(log\) 段…

Zerto 10.0 Update 6 下载 - 适用于本地、混合和多云环境的灾难恢复和数据保护

Zerto 10.0 Update 6 下载 - 适用于本地、混合和多云环境的灾难恢复和数据保护Zerto 10.0 U6 - 适用于本地、混合和多云环境的灾难恢复和数据保护 勒索软件防护、灾难恢复和多云移动性的统一解决方案 请访问原文链接:https://sysin.org/blog/zerto-10/ 查看最新版。原创作品,…

OpenWrt 24.10 OVF:在 ESXi 8.0、Fusion 13 和 Workstation 17 上运行 OpenWrt 的简单方法

OpenWrt 24.10 OVF:在 ESXi 8.0、Fusion 13 和 Workstation 17 上运行 OpenWrt 的简单方法OpenWrt 24.10 OVF:在 ESXi 8.0、Fusion 13 和 Workstation 17 上运行 OpenWrt 的简单方法 OpenWrt 24.10.0 x86_64 OVF 请访问原文链接:https://sysin.org/blog/openwrt-ovf/ 查看最…

SQL Server 2022新功能:将数据库备份到S3兼容的对象存储

SQL Server 2022新功能:将数据库备份到S3兼容的对象存储 本文介绍将S3兼容的对象存储用作数据库备份目标所需的概念、要求和组件。 数据库备份和恢复功能在概念上类似于使用SQL Server备份到Azure Blob存储的URL作为备份设备类型。 要注意的是,不只是amazon S3对象存储,只要…

护眼神器!LightBulb电脑屏幕护眼软件,你值得拥有!

点击上方蓝字关注我 前言 LightBulb是一个免费的护眼软件,它可以帮助我们在晚上或长时间看电脑屏幕时,减少眼睛的不舒服和疲劳。这个软件会随着一天时间的推移,自动调整电脑屏幕的颜色。比如,在白天,它会让屏幕颜色更偏向冷蓝色,就像阳光下的颜色;到了晚上,它会让屏幕颜…

【JWT安全】攻防指南全面梳理

一、简单介绍 JWT(JSON Web Token)是一种用于身份认证和授权的开放标准,它通过在网络应用间传递被加密的JSON数据来安全地传输信息使得身份验证和授权变得更加简单和安全,JWT对于渗透测试人员而言可能是一种非常吸引人的攻击途径,因为它们不仅是让你获得无限访问权限的关键而…