• 994. 腐烂的橘子


    在给定的网格中,每个单元格可以有以下三个值之一:

    值 0 代表空单元格;
    值 1 代表新鲜橘子;
    值 2 代表腐烂的橘子。
    每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。

    返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。

    示例 1:

    输入:[[2,1,1],[1,1,0],[0,1,1]]
    输出:4

    思路:bfs 遍历来处理,但是处理的时候需要注意这个是个 多源的,即 坏的橘子可能有好几个,可以把这些坏的橘子都当做第一层的结点。

    如何写(最短路径的) BFS 代码
    我们都知道 BFS 需要使用队列,代码框架是这样子的(伪代码):

    while queue 非空:
        node = queue.pop()
        for node 的所有相邻结点 m:
           if m 未访问过:
           queue.push(m)

    但是用 BFS 来求最短路径的话,这个队列中第 1 层和第 2 层的结点会紧挨在一起,无法区分。因此,我们需要稍微修改一下代码,在每一层遍历开始前,记录队列中的结点数量 nn ,然后一口气处理完这一层的 nn 个结点。代码框架是这样的:

    depth = 0 # 记录遍历到第几层, 这里也是需要计算的时间
    while queue 非空:
        depth++
        n = queue 中的元素个数
        循环 n 次:
            node = queue.pop()
            for node 的所有相邻结点 m:
                if m 未访问过:
                    queue.push(m)
  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/simplepaul/p/12431810.html
Copyright © 2020-2023  润新知