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

代码随想录 Q88.跳跃游戏

思路:不要纠结当前位置元素究竟跳几步合适。以当前位置元素为3为例,也就是说,不用纠结在当前位置是跳一步、跳两步还是跳三步。而是考虑可跳的覆盖范围。每次取最大的跳跃步数,这个就是可跳的覆盖范围。只要在这个范围内,就一定可以跳过来。因此将该问题转化为跳跃覆盖范围究竟可不可以覆盖到终点。

贪心策略:每次移动取最大的跳跃步数(得到最大的覆盖范围)。每移动一个单位,就更新最大覆盖范围。

(1)局部最优解:每次取最大跳跃步数(取最大覆盖范围)。

(2)全局最优解:最后得到整体最大覆盖范围,看是否能到终点。

(3)局部最优可以推出全局最优,并且找不出反例,因此试试贪心。

如下图所示:

(1)i 每次只能在cover的范围内移动,每移动一个元素,cover得到该元素数值(新的覆盖范围)的补充,让 i 继续移动下去。 

(2)cover每次只取max(该元素数值补充后的范围,cover本身范围)。

(3)如果cover大于等于了终点下标,直接return true。

附代码:

class Solution {public boolean canJump(int[] nums) {if(nums.length == 1){return true;}//初始覆盖范围为0,因为下面的迭代从下标0开始。int cover = 0;//在覆盖范围内更新最大的覆盖范围。for(int i = 0;i <= cover;i++){cover = Math.max(cover,i + nums[i]);if(cover >= nums.length - 1){return true;}}return false;}
}

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

相关文章:

  • 网站开发制作步骤图微信公众号的微网站怎么做的
  • 策略梯度与值函数方法进行联合能解决什么问题
  • 无锡网站推广$做下拉去118cr广元 网站建设
  • 公司网站域名到期了去哪里缴费做刀网站
  • 爱站网排行榜wordpress用户角色权限管理
  • 网校网站毕业设计的方案毕设给学校做网站
  • 企业三要素验证API——企业数字化业务开展的保障
  • 专业系统网站百度产品推广
  • Android/Linux的FEC浅析
  • 网站开发好还是app好百度问答seo
  • 重庆巴南区网站建设如何做网站的seo
  • Vue 3 超强二维码识别:多区域/多尺度扫描 + 高级图像处理
  • 网站建设模块需求分析管理咨询公司一般是做什么的
  • 0511城市建设网站棚户区改造wordpress 崩溃
  • 在线制作简历网站上海贸易公司有哪些
  • 网站建设灬金手指科杰汽油价格最新调整
  • 创口贴网站模板wordpress+左侧导航
  • 网站开发工作程序怎么写个人养老保险缴费标准
  • 做推广的网站带宽需要多少湛江自助建站软件
  • MES系统+3D一览通应用,研发制造无缝对接,实现车间生产数字化
  • 国内工业设计网站网站规划建设方案模板
  • 苏州手机网站建设服务wordpress js 页脚
  • wordpress子目录网站网站建设有哪些家
  • 深圳企业网站制作设计方案wordpress防36kr
  • 淘宝网站基础建设 托管网页设计从入门到精通
  • 网站开发常用框架开发小程序好的公司
  • android ios,web使用lottie实现万能动画
  • seo网站优化方案案例云南网络营销推广
  • 网站备案 途径河南省网站建设哪家好
  • 网站开发说明书局域网站建设模版