【算法面试必刷】994. 腐烂的橘子
目录题目题目链接思路复杂度代码题目题目链接994. 腐烂的橘子 - 力扣LeetCodehttps://leetcode.cn/problems/rotting-oranges/description/?envTypestudy-plan-v2envIdtop-100-liked思路核心模拟广度优先扩散逐层感染每一分钟所有已经腐烂的橘子会感染它们上下左右四个方向的新鲜橘子。使用一个临时标记数组tmp记录当前分钟将要被感染的新鲜橘子避免在同一分钟内重复感染因为多个腐烂橘子可能感染同一个新鲜橘子但只算一次。然后统一将这些标记的橘子变为腐烂并计时。重复直到没有新鲜橘子或无法继续感染即某分钟后没有新橘子被感染但仍有新鲜橘子存在。复杂度时间复杂度O(T × n × m)代码class Solution { public: // 用于标记下一分钟将要腐烂的橘子临时标记数组 bool tmp[1010][1010]; int ans 0; // 记录经过的分钟数 int dx[4] {1, 0, -1, 0}; // 四个方向的偏移量 int dy[4] {0, 1, 0, -1}; // 感染函数对于当前腐烂的橘子 (x,y)将其相邻的新鲜橘子标记到 tmp 中 void infect(int x, int y, vectorvectorint grid) { int n grid.size(), m grid[0].size(); for (int i 0; i 4; i) { int xx x dx[i]; int yy y dy[i]; // 越界检查 if (xx 0 || xx n || yy 0 || yy m) continue; // 如果该位置已经是腐烂的、或者是空格或者已经被标记为即将腐烂则跳过 // 注意tmp[xx][yy] 用于避免重复标记同一分钟内的同一个橘子 if (grid[xx][yy] 0 || grid[xx][yy] 2 || tmp[xx][yy]) continue; // 如果是新鲜橘子则标记为即将腐烂 if (grid[xx][yy] 1) { tmp[xx][yy] 1; } } } // 检查是否还有新鲜橘子 bool check(vectorvectorint grid) { int n grid.size(), m grid[0].size(); for (int i 0; i n; i) { for (int j 0; j m; j) { if (grid[i][j] 1) return false; } } return true; } // 将本轮标记为即将腐烂的橘子tmp中为1的正式变为腐烂2 void rot(vectorvectorint grid) { int n grid.size(), m grid[0].size(); for (int i 0; i n; i) { for (int j 0; j m; j) { if (tmp[i][j] 1) { grid[i][j] 2; } } } } int orangesRotting(vectorvectorint grid) { int n grid.size(), m grid[0].size(); // 如果一开始就没有新鲜橘子直接返回0 if (check(grid)) return 0; // 最多需要 n*m 分钟最坏情况每次只感染一个橘子 int maxTime n * m 1; while (maxTime--) { // 每轮开始前清空临时标记数组 memset(tmp, 0, sizeof(tmp)); // 遍历所有格子对每个腐烂的橘子进行感染标记 for (int i 0; i n; i) { for (int j 0; j m; j) { if (grid[i][j] 2) { infect(i, j, grid); } } } // 将本轮被标记的橘子变为腐烂 rot(grid); ans; // 时间增加1分钟 // 检查是否还有新鲜橘子 if (check(grid)) { return ans; } } // 如果循环结束还有新鲜橘子即无法继续感染返回-1 return -1; } };

相关新闻

2026年口碑好的化妆学校机构TOP排名出炉,究竟谁能拔得头

2026年口碑好的化妆学校机构TOP排名出炉,究竟谁能拔得头

家人们,最近化妆行业那是越来越火啦,好多小伙伴都想着去专业的化妆学校学门手艺,以后不管是就业还是创业,都有个一技之长。这不,2026年口碑好的化妆学校机构TOP排名新鲜出炉了,今天咱就来唠唠,看…

2026/5/17 9:28:07 阅读更多 →
注意!好用的气浮机,靠谱之选究竟哪家强?

注意!好用的气浮机,靠谱之选究竟哪家强?

在环保行业中,气浮机作为一种重要的污水处理设备,其性能和质量直接影响着污水处理的效果。面对市场上众多的气浮机品牌,用户往往难以抉择,究竟哪家才是靠谱之选呢?本文将为您深度剖析,为您的选择提供参考。…

2026/7/4 9:15:58 阅读更多 →
ZU-TT100智能刷卡门禁机,打造办公场景高性价比门禁方案

ZU-TT100智能刷卡门禁机,打造办公场景高性价比门禁方案

在办公门禁领域,稳定可靠、成本可控是核心诉求。中优智能ZU-TT100智能刷卡门禁机,以ABS坚固机身为基础,融合蓝牙无线管理与多元开锁技术,为中小企业、办公场所提供一款兼顾安全性与经济性的专业级门禁终端。 硬核配置:…

2026/7/4 16:34:32 阅读更多 →

最新新闻

Sublime Text Orgmode插件常见问题解决方案:从安装到高级使用

Sublime Text Orgmode插件常见问题解决方案:从安装到高级使用

Sublime Text Orgmode插件常见问题解决方案:从安装到高级使用 【免费下载链接】orgmode orgmode is for keeping notes, maintaining TODO lists, planning projects, and authoring documents with a fast and effective plain-text system. 项目地址: https://g…

2026/7/4 21:52:12 阅读更多 →
YOLOv5 vs YOLOv7 vs YOLOv8:gh_mirrors/yo/yolo_research项目中的模型对比与选择策略 [特殊字符]

YOLOv5 vs YOLOv7 vs YOLOv8:gh_mirrors/yo/yolo_research项目中的模型对比与选择策略 [特殊字符]

YOLOv5 vs YOLOv7 vs YOLOv8:gh_mirrors/yo/yolo_research项目中的模型对比与选择策略 🚀 【免费下载链接】yolo_research based on yolo-high-level project (detect\pose\classify\segment\):include yolov5\yolov7\yolov8\ core ,improvement researc…

2026/7/4 21:50:11 阅读更多 →
高效字典生成框架:cook 的完整实战指南与安全研究应用

高效字典生成框架:cook 的完整实战指南与安全研究应用

高效字典生成框架:cook 的完整实战指南与安全研究应用 【免费下载链接】cook A wordlist framework to fullfill your kinks with your wordlists. For security researchers, bug bounty and hackers. 项目地址: https://gitcode.com/gh_mirrors/coo/cook …

2026/7/4 21:48:10 阅读更多 →
NumPy/SciPy 实战:实对称矩阵 4 阶例题的 3 种对角化实现与性能对比

NumPy/SciPy 实战:实对称矩阵 4 阶例题的 3 种对角化实现与性能对比

NumPy/SciPy 实战:4阶实对称矩阵对角化的3种实现与性能分析在数据科学与机器学习领域,矩阵对角化是一项基础但至关重要的运算技术。当我们面对实对称矩阵时,这种运算不仅具有理论上的优雅性,更蕴含着丰富的实际应用价值。本文将以…

2026/7/4 21:48:10 阅读更多 →
基于OpenCV+MediaPipe的手势识别游戏开发实战

基于OpenCV+MediaPipe的手势识别游戏开发实战

1. 项目背景与核心价值去年夏天我在开发一个儿童互动教育项目时,遇到了一个有趣的挑战:如何让4-6岁的孩子在没有任何物理控制器的情况下,通过自然手势与数字内容进行交互。经过多轮技术选型,最终选择了基于OpenCVMediaPipe的手势识…

2026/7/4 21:48:10 阅读更多 →
VisProg vs 传统CV模型:为什么神经符号编程是视觉AI的未来?

VisProg vs 传统CV模型:为什么神经符号编程是视觉AI的未来?

VisProg vs 传统CV模型:为什么神经符号编程是视觉AI的未来? 【免费下载链接】visprog Official code for VisProg (CVPR 2023 Best Paper!) 项目地址: https://gitcode.com/gh_mirrors/vi/visprog 在计算机视觉领域,一场革命正在悄然发…

2026/7/4 21:44:09 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻