mirror of
https://gitee.com/TheAlgorithms/LeetCodeAnimation.git
synced 2024-12-06 15:19:44 +08:00
solved @xiaoshuai96
This commit is contained in:
parent
650eeb55c0
commit
1c379889b0
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@ -39,12 +39,12 @@
|
||||
|
||||
思路是非常简单的,我们通过动态图直观理解下:
|
||||
|
||||
![腐烂的橘子gif演示](../Animation/腐烂的橘子.gif)
|
||||
![腐烂的橘子gif演示](../Animation/腐烂的橘子01.gif)
|
||||
|
||||
既然理清了思路,那么我们来试试代码:
|
||||
首先,我们需要知道初始状态下的单元格中有多少腐烂的橘子,并且要将它们的位置信息保存下来,我们可以用一个队列(**先入先出**)将(x,y)保存下来;然后我们开始遍历整个队列,每次弹出一个保存的位置信息,将这个位置周围的新鲜橘子全部腐蚀,然后把该位置的信息从队列中删除(旧的信息在下次腐蚀中已经没用了),并且将被腐蚀的橘子的位置信息存入队列中,在下次循环中从它们的位置上再“**向外延伸**”;直到队列为空,循环结束,这个时候并不能说明整个单元格中已经不存在新鲜的橘子,因为可能存在下面这种情况:
|
||||
|
||||
![](../Animation/example.png)
|
||||
![](../Animation/example01.png)
|
||||
|
||||
很明显,标红的区域(新鲜橘子)永远不能被腐蚀,因为它周围唯一的两个单元格是空的。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user