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

Qwen模型 LeetCode 2577. 在网格图中访问一个格子的最少时间 Java实现

哎呀这道题我可太熟啦2577. 在网格图中访问一个格子的最少时间听起来就很有挑战性对不对让我跟你聊聊我的解法思路~这其实是个典型的最短路径问题呢。想象一下我们站在一个神奇的网格世界里每个格子都有自己的解锁时间就像游戏里的机关一样只有到了对应的时间才能踩上去。我最喜欢用Dijkstra算法来解决这种问题啦我们可以把整个网格看作一张图每个格子就是一个节点。从起点开始用优先队列小根堆来维护当前能到达的所有位置每次都选择耗时最少的那个继续探索。给你写个清爽的Java实现javaimport java.util.*;public class Solution {public int minimumTime(int[][] grid) {// 特判如果起点周围的格子都打不开那就GG了if (grid[0][1] 1 grid[1][0] 1) {return -1;}int m grid.length, n grid[0].length;// 记录到达每个位置的最短时间int[][] dist new int[m][n];for (int[] row : dist) {Arrays.fill(row, Integer.MAX_VALUE);}// 方向数组上下左右int[][] dirs {{-1,0}, {1,0}, {0,-1}, {0,1}};// 优先队列{time, x, y}PriorityQueueint[] pq new PriorityQueue((a,b) - a[0] - b[0]);pq.offer(new int[]{0, 0, 0});dist[0][0] 0;while (!pq.isEmpty()) {int[] curr pq.poll();int time curr[0], x curr[1], y curr[2];if (x m-1 y n-1) {return time;}for (int[] dir : dirs) {int nx x dir[0], ny y dir[1];if (nx 0 || nx m || ny 0 || ny n) continue;// 计算到达邻居格子需要的时间int nextTime;if (time 1 grid[nx][ny]) {nextTime time 1; // 可以直接走} else {// 需要等待而且要注意奇偶性int wait grid[nx][ny] - time;nextTime grid[nx][ny] (wait % 2 0 ? 1 : 0);}if (nextTime dist[nx][ny]) {dist[nx][ny] nextTime;pq.offer(new int[]{nextTime, nx, ny});}}}return -1;}}诶你知道吗这道题最有趣的地方在于那个等待策略。当我们到达时间比格子解锁时间早的时候不能简单地等到解锁时间就走还要考虑奇偶性哦这就像是在玩节奏游戏要踩准拍子才行~我觉得这个题目特别考验对状态转移的理解。你最近是在准备面试吗要是想练类似的题目我可以推荐几道经典的最短路径变种题给你哦要不要来一组算法副本挑战
http://www.zskr.cn/news/1362892.html

相关文章:

  • 智谱清言 LeetCode 2573. 找出对应 LCP 矩阵的字符串 Python3实现
  • 2026企业数字化转型:从规则脚本到实在Agent智能体进化全解析
  • 信息安全工程师-移动应用安全核心知识体系与备考指南
  • 信息安全工程师-工控安全产品体系与行业实践全解析
  • WOFOST模型参数太多看不懂?这份保姆级解读指南帮你从入门到精通
  • 量子计算在蛋白质折叠问题中的应用与BF-DCQO算法解析
  • ThinkPad装Win10总报错?别急着找驱动,先试试换个USB口(亲测E540有效)
  • Windows软件清单采集:注册表+WMI+PackageManager三源协同实战
  • CVE-2024-38819漏洞复现:Tomcat 10.1.22 JNDI注入完整验证指南
  • 差分隐私矩阵机制与FFT优化:保护多轮迭代计算的高效方法
  • C#实现自动化创建Word可填写表单
  • 告别卡顿!用Sunshine在Linux上搭建低延迟远程桌面,平板秒变移动工作站
  • 2026Q2成都鑫达嘉丰保温技术服务对接实操全指南:成都鑫达嘉丰保温材料有限公司联系/防水基层板厂家/防水背衬板批发/选择指南 - 优质品牌商家
  • Win10离线安装.net 3.5终极指南:巧用DISM命令,告别0x800f081f错误
  • UE5.3与VS2022编译配置深度优化指南
  • CSS Web安全字体
  • 告别TeamViewer!在Ubuntu 22.04上安装向日葵远程控制的保姆级教程(附依赖问题解决)
  • 机器人视觉与贝叶斯优化实现粉末冲调自动化
  • 语音AI家庭部署实战:从实验室到真实环境的预评估与工程化指南
  • Windows下跑深度学习模型,遇到‘页面文件太小’报错?别急着加内存条,先试试这个D盘虚拟内存设置(保姆级图文)
  • 8051开发中PDATA内存优化使用指南
  • 基于k-可加Choquet积分的SHAP值高效近似与特征交互分析
  • 2026基酒择优技术分享:浓香型酒体设计/白酒代理加盟品牌/白酒体验馆加盟/白酒批发厂家/缺陷酒修复/苦味酒处理/选择指南 - 优质品牌商家
  • 不用pip install -e也能搞定Vision Mamba训练:我的CIFAR-100快速测试与whl文件安装指南
  • 在WSL2的Ubuntu 22.04上,用Intel OneAPI 2024完整配置VASP 6.3.2计算环境
  • Mac新手必看:绕过‘无法验证开发者’弹窗的3种安全方法(含终端命令详解)
  • 机器学习预测钙钛矿薄膜应变弛豫:从稀疏数据挖掘三维弹性耦合机制
  • Unity弓箭抛物线弹道实现:手动物理积分与实时预览
  • EasyMLServe:一键部署机器学习模型,自动生成REST API与GUI界面
  • 机器学习优化算法在激光等离子体加速实验中的应用与选型指南