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

代码随想录 Q89.跳跃游戏Ⅱ

思路:这题比Q88.跳跃游戏要难,但是思路还是要看最大覆盖范围。本题要计算最少步数,因此要考虑什么时候步数加1。

1.贪心策略:以最少的步数增加覆盖范围,覆盖范围一旦覆盖到终点,得到的就是最少步数。

(1)局部最优:当前的可移动距离尽可能地多走(不能超过覆盖范围,并实时更新覆盖范围),如果还没到终点,步数加1。

(2)全局最优:一步尽可能地多走(不能超过覆盖范围,并实时更新覆盖范围),从而达到最少步数。

2.需要统计两个覆盖范围,当前这一步的最大覆盖和下一步的最大覆盖:如果移动下标达到当前这一步的最大覆盖的最远距离还没有到达终点的话,那就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。

如下图所示:

方法一:贪心。

(1)移动下标达到了当前覆盖的最远距离下标时,步数要加1,来增加覆盖距离。最后的步数就是最少步数。

(2)注意:当移动下标达到了当前覆盖的最远距离下标时:如果当前覆盖最远距离下标就是集合终点,那么步数就不用加1了,因为不能再往后走了。

附代码:

class Solution {public int jump(int[] nums) {if(nums == null || nums.length == 0 || nums.length == 1){return 0;}// 记录跳跃的次数int count = 0;// 记录当前的覆盖最大范围int curdist = 0;// 记录最大覆盖范围int maxdist = 0;for(int i = 0;i < nums.length;i++){maxdist = Math.max(maxdist,i + nums[i]);// 说明当前一步再跳一步就到达了末尾if(maxdist >= nums.length - 1){count ++;break;}//走到当前可覆盖的最大范围时,更新下一步可达到的最大范围if(i == curdist){curdist = maxdist;count ++;}}return count;}
}

方法二:依然是贪心。

和方法一不同的是,移动下标只要遇到当前覆盖最远距离的下标,直接步数加1,不考虑是不是终点的情况。可达位置的改变次数就是跳跃次数。

附代码:

class Solution {public int jump(int[] nums) {int res = 0;//当前覆盖的最远距离下标int end = 0;//下一步覆盖的最远距离下标int temp = 0;for(int i = 0;i <= end && end < nums.length - 1;++i){temp = Math.max(temp,i + nums[i]);//可达位置的改变次数就是跳跃次数if( i == end){end = temp;res ++;}}return res;}
}

http://www.dtcms.com/a/593637.html

相关文章:

  • 那个网站是专门做渔具的网站设计与建设难吗
  • Bootstrap4 导航栏
  • ESLint: Expected indentation of * spaces but found *. (style/indent)
  • 前端根据文件后缀名智能识别文件类型的实用函数
  • 文山 网站建设 滇icp成都优化官网推广
  • 线性代数 - 矩阵乘法能换括号,不能换顺序;满足结合律,不满足交换律
  • ScaleRL:掌握大语言模型强化学习的规模化艺术
  • AI MCP体系化开发指南:从诞生背景到技术实现
  • QSS选择器详解:让你的Qt应用界面焕然一新
  • 【底层机制】Android低内存管理机制深度解析
  • 商务网站建设目的电子商务网站开发的预期目标
  • 知识管理的复利效应:从“碎钞机”到“印钞机”的认知升级
  • 2025 年世界职业院校技能大赛汽车制造与维修赛道备赛方案
  • IO 多路复用技术演进与原理深度解析
  • 指纹浏览器字体模拟实践
  • 接口在领域层,实现在基础设施层
  • 【LeetCode刷题】移动零
  • 江苏省建设厅网站公示腾讯企业邮箱注册申请官网
  • 本地部署 Stable Diffusion3.5!cpolar让远程访问很简单!
  • UE_ControllRig交互
  • Swift-snapKit使用
  • Hello-Agents第二章深度解析:智能体的进化之路——从符号逻辑到AI原生
  • 51单片机汇编实现DHT11读取温湿度
  • LiveCharts.Wpf 控件的使用
  • 柔性软风管-测量统计一键出量
  • 告别手动录财报!财务报表OCR识别解决方案选型指南
  • (128页PPT)智慧化工厂区一体化管理平台建设方案(附下载方式)
  • jsp网站建设项目实战总结怎么做网站统计
  • 【Rust 探索之旅】Rust 全栈 Web 开发实战:从零构建高性能实时聊天系统
  • 【Rust 探索之旅】Tokio 异步运行时完全指南:深入理解 Rust 异步编程与源码实现