题目描述的是一个典型的 多源广度优先搜索(BFS) 问题。在一个 m × n 的网格中,腐烂的橘子会以 四个方向(上、下、左、右)向外扩散,每经过一分钟,相邻的新鲜橘子(值 1)就会变成腐烂的橘子(值 2)。我们的目标是求出所有新鲜橘子变成腐烂橘子的最短时间。如果有新鲜橘子无法被腐蚀,则返回 -1。
grid,记录所有腐烂橘子的位置,将其存入 队列 queue 中(用于 BFS)。fresh_count,如果 fresh_count == 0,则立即返回 0。在给定的 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