首页 > 分享 > LeetCode题解(0994):腐烂的橘子(Python)

LeetCode题解(0994):腐烂的橘子(Python)

最新推荐文章于 2024-12-25 20:50:13 发布

长行 于 2021-02-04 08:30:05 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

题目:原题链接(中等)

标签:广度优先搜索

解法时间复杂度空间复杂度执行用时Ans 1 (Python) O ( M × N ) O(M×N) O(M×N) O ( M × N ) O(M×N) O(M×N)64ms (45.32%)Ans 2 (Python)Ans 3 (Python)

解法一:

class Solution: def orangesRotting(self, grid: List[List[int]]) -> int: def _is_valid(x, y): return 0 <= x < m and 0 <= y < n def _get_neighbors(x1, y1): return [(x2, y2) for (x2, y2) in [(x1 - 1, y1), (x1 + 1, y1), (x1, y1 - 1), (x1, y1 + 1)] if _is_valid(x2, y2)] m, n = len(grid), len(grid[0]) queue = collections.deque() waiting = set() for i in range(m): for j in range(n): if grid[i][j] == 2: queue.append((i, j)) elif grid[i][j] == 1: waiting.add((i, j)) if not queue: if not waiting: return 0 else: return -1 time = 0 while queue: for _ in range(len(queue)): i1, j1 = queue.popleft() for (i2, j2) in _get_neighbors(i1, j1): if (i2, j2) in waiting: waiting.remove((i2, j2)) queue.append((i2, j2)) time += 1 if waiting: return -1 return time - 1 12345678910111213141516171819202122232425262728293031323334353637383940

相关知识

Python编程PTA题解——判断素数
Hello world Python新手赛题解
LeetCode 1
LeetCode
Leetcode 题解
GuoSmallGuo23
基于机器学习的花卉识别系统
loess去季节性趋势 公式
ZUST 程序设计算法竞赛基础【1】题解报告
时间序列分解 季节调整 eviews10步骤

网址: LeetCode题解(0994):腐烂的橘子(Python) https://m.huajiangbk.com/newsview1356870.html

所属分类:花卉
上一篇: 柑橘树枯枝烂果怎么回事(柑橘树树
下一篇: 铜钱草养不活怎么办,方法很重要,