力扣热题52

994. 腐烂的橘子 - 力扣(LeetCode)https://leetcode.cn/problems/rotting-oranges/submissions/628761183/?envType=study-plan-v2&envId=top-100-liked广度遍历

利用队列先记录所有腐烂的橘子的位置和当前的时间,然后从队列中取出橘子位置和时间,把四周的橘子也腐烂并加入队列,直到队列没元素,最后循环遍历一下差错判断一下并输出时间

复制代码
#python
class Solution:
    def orangesRotting(self, grid: List[List[int]]) -> int:
        h,l=len(grid),len(grid[0])
        q=collections.deque()
        for i,row in enumerate(grid):
            for j,k in enumerate(row):
                if k==2:
                    q.append((i,j,0))
        
        def ab(i,j):
            for a,b in ((i-1,j),(i+1,j),(i,j-1),(i,j+1)):
                if 0<=a<h and 0<=b<l:
                    yield a,b
        t=0
        while q:
            i,j,t=q.popleft()
            for a,b in ab(i,j):
                if grid[a][b]==1:
                    grid[a][b]=2
                    q.append((a,b,t+1))
        if any(1 in i for i in grid):
            return -1
        return t
相关推荐
灰子学技术1 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
二十雨辰1 小时前
[python]-AI大模型
开发语言·人工智能·python
Yvonne爱编码1 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚1 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂1 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言
pas1362 小时前
41-parse的实现原理&有限状态机
开发语言·前端·javascript
琹箐2 小时前
最大堆和最小堆 实现思路
java·开发语言·算法
前端摸鱼匠2 小时前
YOLOv8 环境配置全攻略:Python、PyTorch 与 CUDA 的和谐共生
人工智能·pytorch·python·yolo·目标检测
WangYaolove13142 小时前
基于python的在线水果销售系统(源码+文档)
python·mysql·django·毕业设计·源码
Monly212 小时前
Java:修改打包配置文件
java·开发语言