题目

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

你的目标是使用最少的跳跃次数到达数组的最后一个位置。

示例:

输入: [2,3,1,1,4]
输出: 2
解释: 跳到最后一个位置的最小跳跃数是 2。
从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。

说明:
假设你总是可以到达数组的最后一个位置。

思考

下面看我的思路草图:
每次需要更新的参数:当前遍历的start、end,当前遍历范围中找到的最大的下一步的end。
迭代结束条件:end < nums.size()-1;

按照这个思路很快可以写出来代码:

class Solution {public:int jump(vector<int>& nums) {  int start = 0;int end = 0;int step = 0;//只有end >= nums.size()-1,才退出whilewhile(end < nums.size()-1){//找到当前覆盖范围能到达的最远距离int max_distance = 0;for(int i = start;i <= end;i++){max_distance = max(nums[i]+i,max_distance);}//利用最远距离更新end和startstart = end + 1;end = max_distance;//步数加一step += 1;}return step;}
};

总结

贪心思想:每次记录你能够跳到的最远距离 max_distance !!!
下一次寻找的范围从上一次范围的end后面一个开始,到最远距离结束。

start = end + 1;
end = max_distance;

leetcode 45. 跳跃游戏 II 思考分析相关推荐

  1. Leetcode 45. 跳跃游戏 II

    Leetcode 45. 跳跃游戏 II 题目 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组 ...

  2. leetcode 45. 跳跃游戏 II 46. 全排列

    leetcode 45. 跳跃游戏 II 46. 全排列 45. 跳跃游戏 II 难度中等1273收藏分享切换为英文接收动态反馈 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中 ...

  3. LeetCode 45.跳跃游戏II

    45.跳跃游戏 II 题目描述 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. ...

  4. leetcode 45.跳跃游戏 II

    一.题意 给出一个非负整数数组 nums ,数组中的每个元素代表在该位置可以跳跃的最大长度.使用最少的跳跃次数到达数组的最后一个位置.假设总是可以到达数组的最后一个位置. 二.解法 贪心算法. 解法一 ...

  5. LeetCode 45. 跳跃游戏 II(贪心/BFS,难)

    文章目录 1. 题目 2. 解题 2.1 贪心 2.2 BFS 1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的 ...

  6. leetcode 45跳跃游戏II

    跳跃游戏II 核心思想:当前范围内走不到目的地,更新下一个范围.下一个范围是当前范围内能走到的最远点 class Solution {public:int jump(vector<int> ...

  7. leetcode —— 45. 跳跃游戏 II

    给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输 ...

  8. Leetcode 45. 跳跃游戏 II (每日一题 20210922)

    给你一个非负整数数组 nums ,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.你的目标是使用最少的跳跃次数到达数组的最后一个位置.假设你总是可以到达数组的最后一个位置 ...

  9. LeetCode 45. 跳跃游戏 II Jump Game II

    给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4] 输 ...

最新文章

  1. linux 把根目录设置成777权限的补救方法
  2. html5拍照上传 java_如何使用HTML5实现拍照上传应用
  3. VTK:相互作用之PickableOff
  4. 那些年,我在游戏开发中改过的bug:靠不住的OS和SDK
  5. 在linux下搭建jira+svn[原创]
  6. 按任意字段排序的分页存储过程
  7. AI+RPA,让你的工作模式开启“新方式”
  8. 对标小米!华为P50 Pro+将有望搭载液态镜头技术
  9. text-overflow样式属性值ellipsis的使用方法
  10. Python爬虫(四)——小说下载器
  11. 「网络流 24 题」火星探险问题。
  12. 【转】Web 设计中最常用的 10 种色调以及它们的示例
  13. python画微信表情
  14. lep开发笔记 -- 内存泄漏
  15. 做游戏与web的区别 - 服务器篇【1】
  16. Property 'X' not found on type entity.Customer错误原因分析
  17. 三线性插值(Trilinear Interpolation)详解
  18. Win10 LTSC2021输入法失效解决办法
  19. Oracle SQL的多表查询 看这一篇文章就够了~
  20. 新唐NUC980使用记录:在用户应用中使用GPIO

热门文章

  1. 移动端适配的几种解决办法
  2. 查看linux电脑总内存,如何查看Linux系统中的内存使用情况的命令呢?
  3. springboot中得注解_Spring以及SpringBoot中的常用的注解小结
  4. gmat阅读.html,GMAT阅读长难句50句+参考译文.pdf
  5. 前端开发:小程序--第一步
  6. 如何把握好 transition 和 animation 的时序,创作描边按钮特效
  7. 百度联盟广告如何理解按父容器宽度
  8. python笔记30-docstring注释添加变量
  9. Python学习之类和实例
  10. win10 hyper-v 虚拟机ping不通宿主机问题