leetcode 994.腐烂的橘子
题目:
在给定的网格中,每个单元格可以有以下三个值之一:
- 值
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.腐烂的橘子相关推荐
- leetcode 994:腐烂的橘子 java
994. 腐烂的橘子 - 力扣(LeetCode) (leetcode-cn.com) 多源广度优先搜索,初始的所有的腐烂橘子,等价于广度优先搜索的同一层,然后对每一层进行搜索: class Solu ...
- LeetCode 994. 腐烂的橘子
994. 腐烂的橘子 思路:直接bfs会出现2个腐烂的橘子在两边同时进行,这样会错误. 正确思路:每分钟变化后所有橘子状态为next_grid,直到橘子状态不改变.如果状态不变,且无新鲜的橘子则返回时 ...
- 【广度优先搜索】leetcode 994. 腐烂的橘子
994. 腐烂的橘子 文章目录 题目描述 示例1: 示例2: 示例3: 提示 方法:多源广度优先搜索 解题思路 代码 复杂度分析 题目描述 在给定的 m x n 网格 grid 中,每个单元格可以有以 ...
- LeetCode 994. 腐烂的橘子(图的BFS)
1. 题目 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会 ...
- leetcode 994 腐烂的橘子
先给出题目: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都 ...
- 图解LeetCode——994. 腐烂的橘子
一.题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,腐烂的橘子 周围 4 个方向上相 ...
- Leetcode 994. 腐烂的橘子(DAY 262)---- 后端面试题(2020.1.5 华为机试真题)
文章目录 原题题目 代码实现(首刷自解 双百 挺简单的) 原题题目 代码实现(首刷自解 双百 挺简单的) class Solution {public:inline void get_badorang ...
- 994. 腐烂的橘子(Leetcode)(多源BFS)
994. 腐烂的橘子 难度简单85 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方 ...
- 994. 腐烂的橘子
994. 腐烂的橘子 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新 ...
最新文章
- Linux Shell常用技巧(十二) Shell编程
- 基于Delphi的Socket I/O模型全接触
- swap的实现(没有中间变量)
- python找不到os模块_python之os模块
- spark rest_Spark简介,您的下一个REST Java框架
- IOC操作Bean管理XML方式(注入集合类型属性)
- 微软(中国)CTO韦青:人工智能时代还没有真正到来
- 多线程的那点儿事(之原子锁)
- python输出24进制时间_python-如何在给定时间原点的情况下将日期时间从十进制转换为“%y-%m-%d%H:%M:%S”?...
- ActiveMQ RabbitMQ RokcetMQ Kafka实战 消息队列中间件视频教程
- mac java jni_Mac OS上编译JNI的动态库
- 蓝牙耳机连接电脑没有声音解决办法
- mysql怎么导出insert语句_mysql导出insert语句
- jmeter请求grpc接口
- 15个国外便宜主机介绍
- C语言文件操作(含详细步骤)
- JAVA外卖订餐系统毕业设计 开题报告
- 排序算法大比拼(2.2)——时间O(n log2n)篇之快速排序(左右指针法)
- java 图片识别 tess4j_图像文字识别(四):java调用tess4j识别图像文字
- 用dpabi遇到的问题与解决(dparsf)
热门文章
- flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...
- python为什么这么小_同样是 Python,怎么区别这么大
- opengl如何画出一个球_OpenGL-Controlling and Monitoring the Pipeline
- 【WebRTC---入门篇】(十一)STUN协议
- android size_t在哪个头文件,size_t
- 通过反汇编来理解restrict关键字
- C++ 异常的详细介绍
- vue2 怎么用vite_Vue2和Vue3开发组件有什么区别
- python系统状态_python实现系统状态监测和故障转移实例方法
- java考试安徽工业大学_2011~2012《Java语言程序设计》试卷A及答案(安徽工业大学)...