当前位置: 首页 > news >正文

腐烂的橘子- python-多元bfs

题目:

思路:

  1. 统计新鲜橘子的数量,记录腐烂橘子的位置(多源 BFS 起点)
  2. 逐层扩散(每一层对应 1 分钟),每次扩散将相邻新鲜橘子腐烂
  3. 最终若仍有新鲜橘子未腐烂,返回-1;否则返回扩散的分钟数。

代码:

from typing import List from collections import deque class Solution: def orangesRotting(self, grid: List[List[int]]) -> int: m, n = len(grid), len(grid[0]) q = deque() # 存储腐烂橘子的坐标 fresh = 0 # 新鲜橘子数量 # 初始化:统计新鲜橘子,将腐烂橘子加入队列 for i in range(m): for j in range(n): if grid[i][j] == 1: fresh += 1 elif grid[i][j] == 2: q.append((i, j)) # 边界情况:无新鲜橘子,直接返回0 if fresh == 0: return 0 minutes = 0 # 记录耗时 # 上下左右四个方向 dirs = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 多源BFS扩散 while q and fresh > 0: # 处理当前层(当前分钟的所有腐烂橘子) level_size = len(q) for _ in range(level_size): i, j = q.popleft() # 遍历四个方向 for dx, dy in dirs: x = i + dx y = j + dy # 坐标合法且为新鲜橘子 if 0 <= x < m and 0 <= y < n and grid[x][y] == 1: grid[x][y] = 2 # 标记为腐烂 fresh -= 1 # 新鲜橘子数减1 q.append((x, y)) # 加入队列供下一层处理 minutes += 1 # 每处理完一层,时间+1 # 若仍有新鲜橘子,返回-1;否则返回耗时 return minutes if fresh == 0 else -1
http://www.cnnetsun.cn/news/101875.html

相关文章:

  • 在线监测:筑牢风电并网安全与效能的核心防线
  • 2026毕设ssm+vue基于框架的问答平台论文+程序
  • EmotiVoice语音合成服务健康检查机制
  • 告别机械音!EmotiVoice实现自然情感语音合成
  • 电机生产车间设备看板物联网方案
  • TPAMI 2025 | 图像超分新范式:LTPE 以局部纹理分布约束,兼顾视觉质量与参数效率
  • mysql建表后的数据填入
  • Observe · Secure · AI|观测云2025中国可观测日深圳站圆满收官
  • 基于SpringBoot的大学生科技竞赛管理系统(毕业设计项目源码+文档)
  • 基于SpringBoot的动漫分享系统的设计与实现(毕业设计项目源码+文档)
  • 震惊!这3家环保服务商靠谱到让你意想不到!
  • 微服务网格:Istio 流量管理实战
  • 电脑启动太慢怎么解决?从底层优化到专业电脑加速的5大终极策略
  • 我的新能源车企,如何靠六西格玛培训跑赢质量与成本的终极竞赛?
  • [创业之路]-734-没有权力的责任是奴役,没有责任的权力是腐败,没有利益的责任是忽悠。管得好,叫责权利统一;管不好,叫利权责倒挂。一流的组织:用责任牵引权力和利益;末流的组织:用利益和权力逃避责任
  • 基于SpringBoot的自动驾驶数据处理任务众包平台系统毕业设计项目源码
  • 基于SpringBoot的养老院管理系统毕业设计项目源码
  • 若是Windows下的HGDB配置参数work_mem>=2GB会导致HGDB服务无法启动
  • 17、使用psad应对网络攻击:原理、配置与实例
  • EmotiVoice能否替代真人配音?实测对比告诉你
  • EmotiVoice语音紧迫感调控适合警报通知
  • vue基于springboot的土壤监测信息采集系统
  • vue基于springboot的小区停车场收费车辆计费管理系统的设计与实现
  • vue基于springboot的文创产品商城众筹平台设计与实现
  • vue基于springboot的物流运输仓储仓库采购信息系统平台的设计与实现
  • 基于SpringBoot的民宿管理系统的设计与实现毕业设计项目源码
  • 基于SpringBoot的民运会赛务管理系统的设计与实现毕业设计项目源码
  • PCB焊锡虚焊排查与预防全攻略
  • 保姆级教程!把AI大模型训练过程揉碎了讲给你听,小白也能秒懂!
  • 4-DE10-Nano的HDMI方块移动案例——I2C通信协议