LeetCode994. 腐烂的橘子( BFS )
力扣
解题思路: 广度优先搜索
class Solution
{
public: int dir[4][2] = {1 ,0 ,-1 ,0 ,0 ,1 ,0 ,-1} ;int orangesRotting(vector<vector<int>>& grid) {//用pair存放位置 queue<pair<int, int>> q; int row = grid.size(); int col = grid[0].size(); //已经腐烂的位置入队 for (int i = 0; i < row; ++i) { for (int j = 0; j < col; ++j) { if (grid[i][j] == 2) q.push(make_pair(i, j)); } }int count = 0;while(!q.empty()){size_t sz = q.size();int flag = 0;//用当前这一批已经腐烂的橘子带出下一批要腐烂的橘子 //故要遍历队列中的所有位置while(sz--){int t_row = q.front().first;int t_col = q.front().second;q.pop();for(int i = 0 ; i < 4 ;++i){int new_row = t_row + dir[i][0];int new_col = t_col + dir[i][1];if(new_row < 0 || new_row >= row || new_col < 0 || new_col >= col || grid[new_row][new_col] != 1)continue; //如果位置越界或者是空格,或者已经是腐烂的位置,则跳过flag = 1;//标记有新的被腐烂grid[new_row][new_col] = 2;q.push(make_pair(new_row , new_col));}}if(flag)++count;}for (int i = 0; i < row; ++i) { for (int j = 0; j < col; ++j) { if(grid[i][j] == 1)return -1;} }return count;}};
LeetCode994. 腐烂的橘子( BFS )相关推荐
- Leetcode994腐烂的橘子(广度搜索法)
Leetcode994腐烂的橘子 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,腐烂的橘 ...
- leetcode994. 腐烂的橘子(bfs)
在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回 ...
- Leetcode--994. 腐烂的橘子(java)
在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回 ...
- (力扣)LeetCode994. 腐烂的橘子(C语言)
一.环境说明 本文是 LeetCode 994题 : 腐烂的橘子,使用c语言实现 模拟广度优先遍历. 测试环境:Visual Studio 2019 二.代码展示 typedef struct que ...
- 15.使用一样的BFS方法(代码几乎一模一样)解决多道LeetCode题目--542题(01矩阵)1765题(地图中的最高点)994腐烂的橘子
一.综述 本文总结自己刷LeetCode中遇到的使用BFS方法解决相同类型的题目.(代码几乎是一模一样) 二.01矩阵(LeetCode第542题) class Solution {int[][] d ...
- LeetCode 994. 腐烂的橘子(图的BFS)
1. 题目 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会 ...
- 994. 腐烂的橘子(Leetcode)(多源BFS)
994. 腐烂的橘子 难度简单85 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方 ...
- LeetCode 994. 腐烂的橘子
994. 腐烂的橘子 思路:直接bfs会出现2个腐烂的橘子在两边同时进行,这样会错误. 正确思路:每分钟变化后所有橘子状态为next_grid,直到橘子状态不改变.如果状态不变,且无新鲜的橘子则返回时 ...
- [JavaScript 刷题] 搜索 - 腐烂的橘子, leetcode 994
[JavaScript 刷题] 搜索 - 腐烂的橘子, leetcode 994 唉--之前写过笔记总结的问题,还是又卡住了. 自挂东南枝-- 题目地址: Rotting Oranges 题目如下: ...
最新文章
- python动态图-Python图像处理之gif动态图的解析与合成操作详解
- java网格画线_java 网格输出的类--练习 stream
- 三菱变频器e700参数表_三菱Q系列PLC,用CCLink控制变频器正反转和多段速
- 音视频技术开发周刊 80期
- Golang Java 实现 【将有序数组装换为二叉搜索树】
- 【C语言】能不能更快?
- ubantu 添加防火墙策略_Ubuntu防火墙安装和配置
- 最常用的10种CSS BUG解决方法与技巧-浏览器兼容教程
- RTP 包格式 详细解析
- Java 用Myeclipse部署项目基础坏境搭建
- hasp运行不成功_HASP加密狗驱动程序没有安装成功如何解决
- 小米4android8.0root,小米小米 5X(安卓8.0)手机完美获取root教程,最强root工具,亲测可用!...
- pad平板性能测试软件,苹果iPad 2020款评测,最便宜的iPad,性能碾压安卓?
- 电脑主板各部件详细图解
- js android 复制粘贴板,js实现复制到粘贴板方法
- 积极主动沟通说话交流的重要性和案例以及技巧
- android开发 节省流量,流量节省程序模式 | Android 开源项目 | Android Open Source Project...
- C/C++ 八股文(二)
- Windows10彻底卸载VMWare虚拟机
- RHEL6/7更新系统的CA