Leetcode-994 Rotting Oranges(腐烂的橘子)

 1 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
 2 class Solution
 3 {
 4     public:
 5         int orangesRotting(vector<vector<int>>& grid)
 6         {
 7             int left = 0;
 8             int sz1 = grid.size();
 9             int sz2 = grid[0].size();
10             _for(i,0,sz1)
11                 _for(j,0,sz2)
12                     if(grid[i][j]==1)
13                         left ++;
14
15             int prev = left;
16             int rnt = 0;
17             while(left)
18             {
19                 prev = left;
20                 _for(i,0,sz1)
21                     _for(j,0,sz2)
22                     {
23                         if(grid[i][j]==2)
24                         {
25                             if(i+1<sz1&&grid[i+1][j]==1)
26                             {
27                                 left--;
28                                 grid[i+1][j]=-1;
29                             }
30                             if(i-1>=0&&grid[i-1][j]==1)
31                             {
32                                 left--;
33                                 grid[i-1][j]=-1;
34                             }
35                             if(j-1>=0&&grid[i][j-1]==1)
36                             {
37                                 left--;
38                                 grid[i][j-1]=-1;
39                             }
40                             if(j+1<sz2&&grid[i][j+1]==1)
41                             {
42                                 left--;
43                                 grid[i][j+1]=-1;
44                             }
45                         }
46                     }
47
48                 _for(i,0,sz1)
49                     _for(j,0,sz2)
50                         if(grid[i][j]==-1)
51                             grid[i][j] = 2;
52                 rnt ++;
53                 if(prev==left)
54                     return -1;
55             }
56             return rnt;
57         }
58 };

原则上来说,应该用BFS,看了一下数据范围,决定无脑暴力撸过

原文地址:https://www.cnblogs.com/Asurudo/p/10390642.html

时间: 2024-08-30 15:04:26

Leetcode-994 Rotting Oranges(腐烂的橘子)的相关文章

LeetCode 994. Rotting Oranges

原题链接在这里:https://leetcode.com/problems/rotting-oranges/ 题目: In a given grid, each cell can have one of three values: the value 0 representing an empty cell; the value 1 representing a fresh orange; the value 2 representing a rotten orange. Every minut

【Leetcode_easy】994. Rotting Oranges

problem 994. Rotting Oranges 参考 1. Leetcode_easy_994. Rotting Oranges; 完 原文地址:https://www.cnblogs.com/happyamyhope/p/11316970.html

[LC] 994. Rotting Oranges

In a given grid, each cell can have one of three values: the value 0 representing an empty cell; the value 1 representing a fresh orange; the value 2 representing a rotten orange. Every minute, any fresh orange that is adjacent (4-directionally) to a

Leetcode之广度优先搜索(BFS)专题-994. 腐烂的橘子(Rotting Oranges)

BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tree Level Order Traversal) 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数.如果不可能,返回 -1. 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1

leetcode 994. 腐烂的橘子(Rotting Oranges)

目录 题目描述: 示例 1: 示例 2: 示例 3: 解法: 题目描述: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数.如果不可能,返回 -1. 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1]] 输出:4 示例 2: 输入:[[2,1,1],[0,1,1],[1,0,1]]

leetcode.994腐烂的橘子

在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格:值 1 代表新鲜橘子:值 2 代表腐烂的橘子.每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数.如果不可能,返回 -1. 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1]]输出:4示例 2: 输入:[[2,1,1],[0,1,1],[1,0,1]]输出:-1解释:左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发

LeetCode——994. 腐烂的橘子

994. 腐烂的橘子 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数.如果不可能,返回 -1. 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1]] 输出:4 示例 2: 输入:[[2,1,1],[0,1,1],[1,0,1]] 输出:-1 解释:左下角的橘子(第 2 行, 第

leetcode 994.腐烂的橘子

题目: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格: 值 1 代表新鲜橘子: 值 2 代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数.如果不可能,返回 -1. 分析: 最近在看广度优先搜素的题目,这个是比较简单基础的题了. 腐烂的橘子会把靠近他的新鲜的橘子腐蚀,那么就是只要从所有坏的橘子的地方一层一层往外遍历就可以了. 代码: 1 //5ms 97% 2 class So

【LeetCode】994. 腐烂的橘子(BFS)

在给定的网格中,每个单元格可以有以下三个值之一: 值?0?代表空单元格: 值?1?代表新鲜橘子: 值?2?代表腐烂的橘子. 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂. 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数.如果不可能,返回?-1. 示例 1: 输入:[[2,1,1],[1,1,0],[0,1,1]] 输出:4 示例 2: 输入:[[2,1,1],[0,1,1],[1,0,1]] 输出:-1 解释:左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,