首页 分享 腐烂的橘子(python3+scala)

腐烂的橘子(python3+scala)

来源:花匠小妙招 时间:2024-12-29 17:13

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

值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 123

每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。
返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。

python3版

import collections def orangesRotting(grid): R, C = grid.__len__(), grid[0].__len__() queue = collections.deque() for r, row in enumerate(grid): for c, val in enumerate(row): if val == 2: queue.append((r, c, 0)) def neighbors(r, c): for nr, nc in ((r - 1, c), (r, c - 1), (r + 1, c), (r, c + 1)): if 0 <= nr < R and 0 <= nc < C: yield nr, nc d = 0 while queue: r, c, d = queue.popleft() for nr, nc in neighbors(r, c): if grid[nr][nc] == 1: grid[nr][nc] = 2 queue.append((nr, nc, d + 1)) if any(1 in row for row in grid): return -1 return d

123456789101112131415161718192021222324252627

scala版

object Solution { def orangesRotting(grid: Array[Array[Int]]): Int = { import scala.collection.mutable val line:Int = grid.length // 计算行数 val column:Int = grid(0).length // 计算列数 var queue:mutable.Queue[Array[Int]] = mutable.Queue() // 创建队列 var step:Int = 0 // 总共的步长 // 循环取出所有一开始状态就腐烂(2)的橘子,存入队列queue中 for (i <- 0 until line) { for (j <- 0 until column) { if (grid(i)(j) == 2) { queue += Array(i,j,step) } } } def RO(i:Int,j:Int,step:Int): Unit = { for ((c,l) <- Array((i-1,j),(i,j-1),(i+1,j),(i,j+1))){ if (0 <= c && c < line && 0 <= l && l < column){ if (grid(c)(l) == 1) { grid(c)(l) = 2 queue += Array(c,l,step+1) } } } } while (queue.nonEmpty) { val a = queue.dequeue val m = a(0) // 腐烂橘子的行坐标 val n = a(1) // 腐烂橘子的列坐标 step = a(2) // 腐烂橘子的轮数 RO(m,n,step) // 刷新下一轮被腐烂橘子的信息 } for (cowLast <- grid){ if (cowLast.contains(1)){ step = -1 } } step } }

123456789101112131415161718192021222324252627282930313233343536373839404142434445

相关知识

橘子怎么种植方法
橘子皮可以做养花的肥料吗
室内盆栽水果橘子,能否存活?,室内盆栽水果橘子,能否存活?
橘子花开的做法
盆栽橘子修剪指南(打造健康美丽的盆栽橘子)
橘子树上的小橘子为啥都掉了
橘子花怎么养 橘子花盆栽养殖方法与注意事项(10)篇
橘子开花
在床头放个橘子有助于睡眠橘子
橘子花怎么养 橘子花如何养

网址: 腐烂的橘子(python3+scala) https://www.huajiangbk.com/newsview1356892.html

所属分类:花卉
上一篇: 蜜橘果实腐烂是什么原因?有哪些防
下一篇: 铜钱草注意两点,爆盆又省心

推荐分享