运用广度优先搜索(BFS)

class Solution {public int orangesRotting(int[][] grid) {int count=0;//记录新鲜橘子int N = grid.length;//记录数组的行int M = grid[0].length;//记录数组的列Queue<int[]> queue = new LinkedList<>();for(int i=0;i<N;i++){for(int j=0;j<M;j++){if(grid[i][j]==1){count++;}else if(grid[i][j]==2){queue.add(new int[]{i,j});}}}int time = 0;//记时间while(!queue.isEmpty() && count>0){time++;int n = queue.size();for(int i=0;i<n;i++){int[] arr = queue.poll();int a = arr[0];//代表烂橘子的左右int b = arr[1];//代表烂橘子的上下if(a-1>=0 && grid[a-1][b]==1){count--;grid[a-1][b] = 2;queue.add(new int[]{a-1,b});}if(a+1<N && grid[a+1][b]==1){count--;grid[a+1][b] = 2;queue.add(new int[]{a+1,b});}if(b-1>=0 && grid[a][b-1]==1){count--;grid[a][b-1] = 2;queue.add(new int[]{a,b-1});}if(b+1<M && grid[a][b+1]==1){count--;grid[a][b+1] = 2;queue.add(new int[]{a,b+1});}}}if(count>0){return -1;}else {return time;}}
}

OJ---腐烂的橘子相关推荐

  1. Java——腐烂的橘子

    题目链接 leetcode在线oj题--腐烂的橘子 题目描述 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐 ...

  2. 15.使用一样的BFS方法(代码几乎一模一样)解决多道LeetCode题目--542题(01矩阵)1765题(地图中的最高点)994腐烂的橘子

    一.综述 本文总结自己刷LeetCode中遇到的使用BFS方法解决相同类型的题目.(代码几乎是一模一样) 二.01矩阵(LeetCode第542题) class Solution {int[][] d ...

  3. 文巾解题 994. 腐烂的橘子

    1 题目描述 2 解题思路 2.1 多源广搜 使用广搜的思想,但是和一般的广搜不同,这里一开始的队列不是一个元素,而是一开始就腐烂的所有橘子的坐标. 同时我们队列里面的每一个元素是一个三元组,分别是腐 ...

  4. leetcode 994.腐烂的橘子

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

  5. 994. 腐烂的橘子

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

  6. leetcode994. 腐烂的橘子(bfs)

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

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

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

  8. Leetcode--994. 腐烂的橘子(java)

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

  9. LeetCode 994. 腐烂的橘子

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

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

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

最新文章

  1. Kendo UI Web教程分享
  2. 县域经济谋定特色农产品-农业大健康·万祥军:品牌是抓手
  3. ios 跳转到某 app 的评价区域、由某应用跳转到其他应用
  4. 构建基于分布式SOA架构的统一身份认证体系
  5. UITableview高度计算
  6. 得到MP3中隐藏的信息
  7. Ruby之入门(一)
  8. PHP中preg_match_all正则匹配出需要的内容
  9. ajax 传文件和参数,Ajax上传文件及携带参数
  10. 数学建模-灰色系统理论与灰色关联分析
  11. matlab正弦波用示波器测失真,请教下,自己做个正弦波信号发生器,如何测试波形的失真大小?...
  12. 服务器系统才有卷影副本吗,windows server 2019没有适合具有卷影副本的卷
  13. 2022年上海市安全员C证考试试题模拟考试平台操作
  14. 【操作系统】-- 动态分区分配算法(首次适应算法FF、最佳适应算法BF、最坏适应算法WF、循环首次适应算法NF)
  15. 理解LSTM神经网络 ---- 翻译 Understanding LSTM Networks
  16. kubernetes各组件介绍
  17. 我在simulink与adams联合仿真中遇到关于Error in Adams(server) simulation startup问题及解决办法。
  18. java ocr 识别中文
  19. java编译错误:程序包javax.servlet不存在javax.servlet.*
  20. HTML网页打印实现分页打印功能

热门文章

  1. 嵌入式设备NFS挂载目录(基于iTop 4412)
  2. 电脑开机显示两个用户名怎么解决?
  3. java lambda表达式 steam api
  4. word 2010 尾注 尾注序号 连续尾注 尾注分隔符 删除
  5. 微信template模板
  6. 浙江大学《概率论与数理统计》
  7. 即拼商城系统模式开发
  8. delphi xe “[FIREDAC][PHYS][SQLITE] DATABASE IS LOCKED”错误
  9. 判断回文串,最长回文串方法
  10. matlab 类似宏定义,比较全面的宏定义解析