问题:在给定的网格中,每个单元格可以有以下三个值之一:
值 0 代表空单元格;
值 1 代表新鲜橘子;
值 2 代表腐烂的橘子。
每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。
思路:多源 bfs。先将值为2的结点入队列。然后在遍历中,计算上下左右四个方向的结点,如果值为1,则将其结点信息入队列,同时将单元格的值设置为2,表示已访问,同时记录下当前的深度。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/Rotting%20Oranges