题目:

在给定的网格中,每个单元格可以有以下三个值之一:

  • 值 0 代表空单元格;
  • 值 1 代表新鲜橘子;
  • 值 2 代表腐烂的橘子。

每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。

返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1

分析:

最近在看广度优先搜素的题目,这个是比较简单基础的题了。

腐烂的橘子会把靠近他的新鲜的橘子腐蚀,那么就是只要从所有坏的橘子的地方一层一层往外遍历就可以了。

代码:

 1 //5ms 97%
 2 class Solution {
 3     public int orangesRotting(int[][] grid) {
 4         Queue<int[]> q=new LinkedList<>();
 5         int h=grid.length,w=grid[0].length,time=0;
 6         for(int n=0;n<h;++n)
 7             for(int m=0;m<w;++m)
 8                 if(grid[n][m]==2) {
 9                     int[] po= {0,n,m};
10                     q.add(po);
11                 }
12         while(!q.isEmpty()) {
13             int[] g=q.poll();
14             time=time>g[0]?time:g[0];
15             if(g[1]+1<h&&grid[g[1]+1][g[2]]==1) {
16                 grid[g[1]+1][g[2]]=2;
17                 int[] po= {g[0]+1,g[1]+1,g[2]};
18                 q.add(po);
19             }
20             if(g[1]-1>=0&&grid[g[1]-1][g[2]]==1) {
21                 grid[g[1]-1][g[2]]=2;
22                 int[] po= {g[0]+1,g[1]-1,g[2]};
23                 q.add(po);
24             }
25             if(g[2]-1>=0&&grid[g[1]][g[2]-1]==1) {
26                 grid[g[1]][g[2]-1]=2;
27                 int[] po= {g[0]+1,g[1],g[2]-1};
28                 q.add(po);
29             }
30             if(g[2]+1<w&&grid[g[1]][g[2]+1]==1) {
31                 grid[g[1]][g[2]+1]=2;
32                 int[] po= {g[0]+1,g[1],g[2]+1};
33                 q.add(po);
34             }
35         }
36         for(int n=0;n<h;++n)
37             for(int m=0;m<w;++m)
38                 if(grid[n][m]==1)
39                     return -1;
40         return time;
41     }
42 }

转载于:https://www.cnblogs.com/CHAHA123/p/10736353.html

leetcode 994.腐烂的橘子相关推荐

  1. leetcode 994:腐烂的橘子 java

    994. 腐烂的橘子 - 力扣(LeetCode) (leetcode-cn.com) 多源广度优先搜索,初始的所有的腐烂橘子,等价于广度优先搜索的同一层,然后对每一层进行搜索: class Solu ...

  2. LeetCode 994. 腐烂的橘子

    994. 腐烂的橘子 思路:直接bfs会出现2个腐烂的橘子在两边同时进行,这样会错误. 正确思路:每分钟变化后所有橘子状态为next_grid,直到橘子状态不改变.如果状态不变,且无新鲜的橘子则返回时 ...

  3. 【广度优先搜索】leetcode 994. 腐烂的橘子

    994. 腐烂的橘子 文章目录 题目描述 示例1: 示例2: 示例3: 提示 方法:多源广度优先搜索 解题思路 代码 复杂度分析 题目描述 在给定的 m x n 网格 grid 中,每个单元格可以有以 ...

  4. LeetCode 994. 腐烂的橘子(图的BFS)

    1. 题目 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会 ...

  5. leetcode 994 腐烂的橘子

    先给出题目: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都 ...

  6. 图解LeetCode——994. 腐烂的橘子

    一.题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,腐烂的橘子 周围 4 个方向上相 ...

  7. Leetcode 994. 腐烂的橘子(DAY 262)---- 后端面试题(2020.1.5 华为机试真题)

    文章目录 原题题目 代码实现(首刷自解 双百 挺简单的) 原题题目 代码实现(首刷自解 双百 挺简单的) class Solution {public:inline void get_badorang ...

  8. 994. 腐烂的橘子(Leetcode)(多源BFS)

    994. 腐烂的橘子 难度简单85 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方 ...

  9. 994. 腐烂的橘子

    994. 腐烂的橘子 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新 ...

最新文章

  1. Linux Shell常用技巧(十二) Shell编程
  2. 基于Delphi的Socket I/O模型全接触
  3. swap的实现(没有中间变量)
  4. python找不到os模块_python之os模块
  5. spark rest_Spark简介,您的下一个REST Java框架
  6. IOC操作Bean管理XML方式(注入集合类型属性)
  7. 微软(中国)CTO韦青:人工智能时代还没有真正到来
  8. 多线程的那点儿事(之原子锁)
  9. python输出24进制时间_python-如何在给定时间原点的情况下将日期时间从十进制转换为“%y-%m-%d%H:%M:%S”?...
  10. ActiveMQ RabbitMQ RokcetMQ Kafka实战 消息队列中间件视频教程
  11. mac java jni_Mac OS上编译JNI的动态库
  12. 蓝牙耳机连接电脑没有声音解决办法
  13. mysql怎么导出insert语句_mysql导出insert语句
  14. jmeter请求grpc接口
  15. 15个国外便宜主机介绍
  16. C语言文件操作(含详细步骤)
  17. JAVA外卖订餐系统毕业设计 开题报告
  18. 排序算法大比拼(2.2)——时间O(n log2n)篇之快速排序(左右指针法)
  19. java 图片识别 tess4j_图像文字识别(四):java调用tess4j识别图像文字
  20. 用dpabi遇到的问题与解决(dparsf)

热门文章

  1. flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...
  2. python为什么这么小_同样是 Python,怎么区别这么大
  3. opengl如何画出一个球_OpenGL-Controlling and Monitoring the Pipeline
  4. 【WebRTC---入门篇】(十一)STUN协议
  5. android size_t在哪个头文件,size_t
  6. 通过反汇编来理解restrict关键字
  7. C++ 异常的详细介绍
  8. vue2 怎么用vite_Vue2和Vue3开发组件有什么区别
  9. python系统状态_python实现系统状态监测和故障转移实例方法
  10. java考试安徽工业大学_2011~2012《Java语言程序设计》试卷A及答案(安徽工业大学)...