力扣热题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
相关推荐
CTA终结者1 分钟前
期货量化合约代码写错:天勤 symbol 格式与 silent 订阅坑
python·区块链
c_lb72881 分钟前
期货程序化撤单改价后仓位乱了:cancel_order 与 TargetPosTask 协作
python
Irissgwe6 分钟前
C++ STL关联式容器详解:set、multiset、map、multimap
开发语言·c++·stl·set·map·multiset·关联式容器
叶帆14 分钟前
【YFIOs】用C#开发硬件之WiFi网络
开发语言·网络·c#
meilindehuzi_a18 分钟前
深入理解 JavaScript 的同步与异步机制:从单线程设计到 Promise 核心应用
开发语言·javascript·ecmascript
如烟花的信页20 分钟前
加速乐cookie逆向分析
javascript·爬虫·python·js逆向
装不满的克莱因瓶21 分钟前
PyTorch 与它的自动微分工具:Autograd
人工智能·pytorch·python·深度学习·神经网络·机器学习·ai
cd9888030 分钟前
2026年,电销机器人哪家技术强?
python
weixin1997010801631 分钟前
[特殊字符] 1688开放平台API Sign签名算法详解(Java / Python / PHP 实现)
java·python·算法
skywalk81631 小时前
记录段言的开发过程
开发语言·学习·编程