Advertisement

LeetCode 每日一题:994. 腐烂的橘子

阅读量:

LeetCode 每日一题 ---- 【994. 腐烂的橘子】

  • 994.腐烂的橘子
      • 途径:融合多来源的广度优先搜索算法

腐烂橘子问题解析

多源BFS算法实现

昨日未食用完毕的柑橘今日已出现变质现象
总算落入了柑橘的困境之中

题目的核心在于确定使所有柑橘腐烂所需的最短时间,实际上只需确保从上至下的每一步都尽可能地将柑橘腐烂至全部即可达到最小时间的要求

这属于一个多起点的广度优先搜索问题,第一步需统计初始状态下的新鲜柑橘与已腐烂的柑橘数量,并将那些已经腐烂的柑橘加入到队列 q 中。随后从队列中取出这些腐烂的柑橘,并向四个方向进行扩散腐烂,同时将新被腐烂的柑橘再次加入到队列 q 中。这一过程持续进行,直到队列为空为止。每次有新的柑橘被腐烂后,都需要对剩余的新鲜柑橘数量进行递减操作。若最终仍有未被腐烂的新鲜柑橘存在,则说明部分柑橘无法被完全腐烂,此时应返回 -1。

复制代码
    class Solution {
    private static final int[][] DIRECTIONS = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
    public int orangesRotting(int[][] grid) {
        int m = grid.len

全部评论 (0)

还没有任何评论哟~