news 2026/9/5 6:32:16

leetcode 994腐烂的橘子

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 994腐烂的橘子
class Solution { public: int orangesRotting(vector<vector<int>>& grid) { int m = grid.size(); // 行数 int n = grid[0].size(); // 列数 int orange = 0; // 新鲜橘子的数量 int pre = 0; // 记录上一轮扩散前的新鲜橘子数量 int minute = 0; // 经过的分钟数 // 先统计一共有多少个新鲜橘子 for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (grid[i][j] == 1) { orange++; } } } // 还有新鲜橘子,并且上一轮有新的橘子被腐烂 while (orange > 0 && orange != pre) { // 保存这一轮扩散前的新鲜橘子数量 pre = orange; // 遍历整个网格,寻找当前这一分钟应该扩散的腐烂橘子 for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { // 2:初始腐烂 // 3:第1分钟腐烂 // 4:第2分钟腐烂…… if (grid[i][j] == minute + 2) { // 下 if (i + 1 < m && grid[i + 1][j] == 1) { grid[i + 1][j] = minute + 3; // 下一分钟腐烂 orange--; } // 上 if (i - 1 >= 0 && grid[i - 1][j] == 1) { grid[i - 1][j] = minute + 3; orange--; } // 左 if (j - 1 >= 0 && grid[i][j - 1] == 1) { grid[i][j - 1] = minute + 3; orange--; } // 右 if (j + 1 < n && grid[i][j + 1] == 1) { grid[i][j + 1] = minute + 3; orange--; } } } } // 完成一轮扩散,时间 +1 minute++; } // 传播结束后还有新鲜橘子,说明这些橘子永远无法被腐烂 if (orange > 0) { return -1; } // 所有新鲜橘子都已经腐烂 return minute; } };

总结

这道题的核心是按分钟一层一层扩散

这里用数字记录橘子的腐烂时间:

1 = 新鲜橘子 2 = 初始腐烂橘子 3 = 第1分钟腐烂 4 = 第2分钟腐烂 5 = 第3分钟腐烂 ...

所以:

grid[i][j] == minute + 2

表示只让当前这一分钟应该扩散的腐烂橘子去感染上下左右的新鲜橘子。

两个变量重点记住:

orange:当前还剩多少新鲜橘子 pre:这一轮扩散开始前的新鲜橘子数量

如果最后:

orange > 0

说明传播已经停止,但还有新鲜橘子,因此:

return -1;

一句话记忆:

每分钟找到当前层的腐烂橘子,向上下左右传播;全部腐烂返回分钟数,有橘子永远感染不到就返回 -1。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 6:31:32

工业边缘AI设备冷部署与OTA远程升级方案解析

工业边缘 AI 设备这两年落地速度越来越快&#xff0c;但真正干过现场交付的人都知道&#xff0c;“装系统”和“配环境”这两件事能逼疯半个项目组。尤其是煤矿、港口、化工厂这类场景&#xff0c;网络条件差、机柜环境乱、现场工程师又不一定懂 Linux&#xff0c;一台设备开箱…

作者头像 李华
网站建设 2026/9/5 6:30:37

科研编码智能体:正确使用与专家判断的协同之道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 6:17:24

构建高可用AI服务网关:开源模型与智能路由实现永不断连

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 6:15:19

出入库系统技术评估:部署测试与性能优化全流程指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 6:12:47

一句话生成MC页游:AI模型对比与单文件代码工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/5 6:08:23

使用docker创建了一个容器,秒退,docker start也不行

使用如下命令创建了一个容器docker run -d --namecentos_7 centos:7a43464e07932281320f3430dd801c4ef1d6e28f0197d97378cbee2554d393089docker ps后发现没有启动成功&#xff0c;在使用docker start centos_7 之后还是不行原因&#xff1a;由镜像创建容器&#xff0c;参数缺少…

作者头像 李华