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

到达最后一个房间的最少时间II 类似棋盘转移规律查找

文章目录

3342.到达最后一个房间的最少时间II

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 思路分析:最短路径问题,当然,由于不同的格子之间的移动的代价不统一,所以这个最短路径需要使用Dijkstra算法进行求解,对于直接使用Dijkstra算法模版的题目,大家可以先去做一下3341. 到达最后一个房间的最少时间 I
  • 这个题目难点在于如何计算从格子(x,y)出发的代价是1还是2

在这里插入图片描述

  • 通过画出具体的转移代价的图,我们发现是有规律的,当当前位于(x,y)的时候,转移的代码可以表示为(x+y)%2 + 1,既然得出了代价的计算,那么接下来直接套用Dijkstra算法的模版即可
import heapq
class Solution:def minTimeToReach(self, moveTime: List[List[int]]) -> int:n,m = len(moveTime),len(moveTime[0])dis = [[float("inf")]*m for _ in range(n)]dis[0][0] = 0 h = [(0,(0,0))]tmp = []cou = 1step = [(0,-1),(0,1),(-1,0),(1,0)]# 感觉得来一个中转的while h:d,(x,y) = heapq.heappop(h)if d > dis[x][y]:continueif x == n-1 and y == m-1:return d # 访问邻居# 处理十分巧妙time = (x+y) % 2 + 1for dx,dy in step:nx,ny = x+dx,y+dy if 0<=nx<n and 0<=ny<m:newdis = d + time if d + time > moveTime[nx][ny] + time else moveTime[nx][ny] + timeif newdis < dis[nx][ny]:dis[nx][ny] = newdisheapq.heappush(h,(newdis,(nx,ny)))
http://www.xdnf.cn/news/337951.html

相关文章:

  • python打卡day19
  • 爱普生FC2012SN晶振在TWS蓝牙耳机中的应用优势
  • 代理服务器
  • 《Zabbix Proxy分布式监控实战:从安装到配置全解析》
  • uniapp|获取当前用户定位、与系统设定位置计算相隔米数、实现打卡签到(可自定义设定位置、位置有效范围米数)
  • 【本地搭建npm私服】使用Verdaccio
  • K8s中的containerPort与port、targetPort、nodePort的关系:
  • ping_test_parallel.sh 并行网络扫描脚本
  • 《零基础学机器学习》学习大纲
  • ruoyi-flowable-plus 前端框架启动报错修复
  • openwrt之UCI 增删改查(add/get/set /add_list...)
  • c++进阶——红黑树的实现
  • 使用Jmeter对AI模型服务进行压力测试
  • CSS3 过渡与动画
  • 体绘制中的传输函数(transfer func)介绍
  • JDBC:java与数据库连接,Maven,MyBatis
  • 3D医学影像开发<五>:利用Hessian矩阵增强影像并设置固定阈值进行血管模型自动分割
  • 认识不同格式的点云数据 -PCD点云数据 文本点云数据
  • 【前端】webstorm运行程序浏览器报network error
  • PyTorch 版本、torchvision 版本和 Python 版本的对应关系
  • iptables 访问控制列表使用记录
  • 在UI原型设计中,低、高保真原型图有什么区别?
  • 用NVivo革新企业创新:洞悉市场情绪,引领金融未来
  • 使用thymeleaf模版导出swagger3的word格式接口文档
  • 【每天学习一点点】使用Python的pathlib模块分割文件路径
  • HBuilderX安卓真机运行安装失败解决汇总
  • Git实战经验分享:深入掌握git commit --amend的进阶技巧
  • zookeeper实现分布式获取全局唯一自增ID的案例。
  • 论文速读《DARE:基于扩散模型的自主机器人探索新范式》
  • 【Linux网络】网络命令