力扣热题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
相关推荐
SelectDB12 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
荣码19 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
金銀銅鐵1 天前
[Python] 基于欧几里得算法,实现分数约分计算器
python·数学
Lyn_Li1 天前
Kaggle Top 5 | 198只股票、200条数据的金融预测——BattleFin高分方案从零复现
python·kaggle·比赛复盘·金融预测
小九九的爸爸2 天前
前端想要入门Agent开发,要具备哪些Python基础?
python·agent·ai编程
阿耶同学2 天前
手把手教你用 LangGraph 搭建三层嵌套 Agent 架构
python·程序员
花酒锄作田2 天前
Pydantic校验配置文件
python
hboot2 天前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
ZhengEnCi3 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi3 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab