想完全理解这个题,我们先得搞懂两个前置知识:1.BFS求最短路 + 2.多源最短路
上一小结我们学习到了如何使用BFS求解连通分量。那么如何进一步求解边权为1的单源最短路径呢?
我们记录dist[v] 代表从起点s 到 点v的最短路径,如下图所示👇

在给定的 m×n 网格 grid 中,每个单元格可以有以下三个值之一:
每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。
输出 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 −1 。
一个整数,表示答案。

输入
3 3
2 1 1
1 1 0
0 1 1
输出
4
输入
3 3
2 1 1
0 1 1
1 0 1
输出
-1
左下角的橘子(第 2 行, 第0列)永远不会腐烂,因为腐烂只会发生在 4 个方向上
输入
1 2
0 2
输出
0
因为0 分钟时已经没有新鲜橘子了,所以答案就是 0