994. 腐烂的橘子
994. 腐烂的橘子
在给定的网格中,每个单元格可以有以下三个值之一:
- 值
0
代表空单元格; - 值
1
代表新鲜橘子; - 值
2
代表腐烂的橘子。
每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。
返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1
。
输入:[[2,1,1],[1,1,0],[0,1,1]] 输出:4
示例 2:
输入:[[2,1,1],[0,1,1],[1,0,1]] 输出:-1 解释:左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个正向上。
示例 3:
输入:[[0,2]] 输出:0 解释:因为 0 分钟时已经没有新鲜橘子了,所以答案就是 0 。
提示:
1 <= grid.length <= 10
1 <= grid[0].length <= 10
grid[i][j]
仅为0
、1
或2
var orangesRotting = function(grid) {if(grid.length === 0) return 0;let enumOrange = [[1,0],[0,1],[-1,0],[0,-1]],freshNum = 0,rots = [],x = grid.length,y = grid[0].length,step=0;for(let i=0; i<x; i++){for(let j=0; j<y; j++){if(grid[i][j] === 1){freshNum++;}else if(grid[i][j]===2){rots.push([i, j])}}}if(freshNum === 0) return 0;while(rots.length){if(freshNum === 0) return step;step++;let num = rots.length;for (let i = 0; i < num; i++) {let curr = rots.shift();for(let k=0; k<enumOrange.length; k++){let m = enumOrange[k][0],n = enumOrange[k][1];let next = grid[curr[0]+m] && grid[curr[0]+m][curr[1]+n];if(next===1){grid[curr[0]+m][curr[1]+n] = 2;rots.push([curr[0]+m, curr[1]+n]);freshNum--;} }};}return -1 }
复盘:
枚举类型和for of的应用
转载于:https://www.cnblogs.com/zhangzs000/p/10465692.html
994. 腐烂的橘子相关推荐
- LeetCode 994. 腐烂的橘子
994. 腐烂的橘子 思路:直接bfs会出现2个腐烂的橘子在两边同时进行,这样会错误. 正确思路:每分钟变化后所有橘子状态为next_grid,直到橘子状态不改变.如果状态不变,且无新鲜的橘子则返回时 ...
- 【广度优先搜索】leetcode 994. 腐烂的橘子
994. 腐烂的橘子 文章目录 题目描述 示例1: 示例2: 示例3: 提示 方法:多源广度优先搜索 解题思路 代码 复杂度分析 题目描述 在给定的 m x n 网格 grid 中,每个单元格可以有以 ...
- 994. 腐烂的橘子(Leetcode)(多源BFS)
994. 腐烂的橘子 难度简单85 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方 ...
- leetcode 994:腐烂的橘子 java
994. 腐烂的橘子 - 力扣(LeetCode) (leetcode-cn.com) 多源广度优先搜索,初始的所有的腐烂橘子,等价于广度优先搜索的同一层,然后对每一层进行搜索: class Solu ...
- 15.使用一样的BFS方法(代码几乎一模一样)解决多道LeetCode题目--542题(01矩阵)1765题(地图中的最高点)994腐烂的橘子
一.综述 本文总结自己刷LeetCode中遇到的使用BFS方法解决相同类型的题目.(代码几乎是一模一样) 二.01矩阵(LeetCode第542题) class Solution {int[][] d ...
- 文巾解题 994. 腐烂的橘子
1 题目描述 2 解题思路 2.1 多源广搜 使用广搜的思想,但是和一般的广搜不同,这里一开始的队列不是一个元素,而是一开始就腐烂的所有橘子的坐标. 同时我们队列里面的每一个元素是一个三元组,分别是腐 ...
- leetcode 994.腐烂的橘子
题目: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂 ...
- LeetCode 994. 腐烂的橘子(图的BFS)
1. 题目 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会 ...
- 994. 腐烂的橘子 (广度探索)
解题思路 本题的核心思路是:只考虑1.2右面和下面的 如果是0,不管: 如果是1,只要右面和下面有2 ,自己就感染为2: 如果是2,只要右面和下面是1,将其感染为3(目的是让它在本轮内无法感染别人): ...
最新文章
- python读取一个图像_从图像处理python的文件中读取多个图像
- k-modes算法mysql_第十一章 K-Means(K均值)算法模型实现(中)
- Sql Server 查询语句
- hibernate中@Entity和@Table的区别
- 20155301实验三 免杀原理与实践
- NYOJ176 整数划分(二)
- 通过 .NET NativeAOT 实现用户体验升级
- js获取一个月份最大天数和获取月的最后一天
- go语言基础之导入包的常用方法
- java JDBC操作MySQL数据库
- c++餐饮管理系统_扎哈·哈迪德建筑事务所赢得深圳湾超级总部基地C塔项目国际竞赛...
- python和c#区别_Python和C#哪个好?有什么区别?
- Android10支持dcip3,dcip3 相当于多少srgb
- 分布式 | dble 读写分离场景下为什么普通的读 sql 发送到了 master 实例上
- python xls文件转为csv
- Docker - 配置国内加速器加速镜像下载
- 你不知道的JavaScript(上卷)- - 书本知识点记录
- html 网页不可以复制粘贴,网页上的文字不能复制,三种方法教你复制全网文字...
- 自学 iOS 开发的一些经验
- android 禁止媒体扫描,Android通过.nomedia文件禁止多媒体库扫描指定文件夹下的多媒体文件...
热门文章
- Git同时使用不同平台代码仓库
- Visual C++中MFC消息的分类
- Test on 09/04/2016
- USACO3.15stamps(dp)
- 稳定高效大型系统架构---集群中间件开发
- 红旗系统linux忘了开机密码,红旗Linux6.0中忘记了root密码
- Linux下MySQL数据库常用基本操作 一
- Java Spring IOC用法
- Shell编程关于Sha-Bang(#!)
- python每隔30s检查一次_用Python写一个“离线语音提示器”来提醒我们别忘记了时间...