Menu
CoddyTech

Rotting Oranges

中等图队列python iconjava iconcpp iconc iconjs icon+10

你会得到一个网格,它是由等长行组成的列表。每个单元格的值为 0(空)、1(新鲜橘子)或 2(腐烂橘子)。每过一分钟,与腐烂橘子上下左右相邻的新鲜橘子都会变腐烂。返回直到没有新鲜橘子所需的分钟数;如果有些新鲜橘子永远不会腐烂,则返回 -1。如果网格一开始就没有新鲜橘子,则需要 0 分钟。

函数

orangesRotting(grid: integer-2d-array) → integer
gridinteger-2d-array
网格,每行一个由 0、1 和 2 组成的列表
返回值integer
直到没有新鲜橙子所需的分钟数,如果永远不会发生,则为 -1

约束条件

  • 1 ≤ grid.length ≤ 150
  • 1 ≤ grid[i].length ≤ 150
  • 每一行的长度都相同。
  • 每个 grid[i][j] 都是 0、1 或 2。

示例

输入
grid = [[2, 1, 1, 0], [0, 1, 0, 1], [1, 1, 1, 1]]
输出
6
解释
单元格用(行,列)表示。腐烂过程沿着从 (0,0) 出发的唯一路径进行,并在第 5 分钟到达 (2,3)。(1,3) 处的橘子只与 (2,3) 相邻,因此最后腐烂,在第 6 分钟。
challenge icon

进阶

假设每个新鲜橙子在相邻的橙子腐烂后,都需要各自不同的分钟数才会腐烂。那么你该如何找出全部腐烂所需的时间?

重置代码
def orangesRotting(grid):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

grid = [[2, 1, 1, 0], [0, 1, 0, 1], [1, 1, 1, 1]]

预期输出

6