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

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

判断你是否能够到达最后一个下标。

示例 1:

输入:nums = [2,3,1,1,4]
输出:true
解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。

示例 2:

输入:nums = [3,2,1,0,4]
输出:false
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。

提示:

1 <= nums.length <= 3 * 104
0 <= nums[i] <= 105

Method:

从前向后遍历,每次记录可以到达的最远位置(贪心)

Code:

class Solution{
public:// 跳跃游戏bool canJump(vector<int> &nums){// 给定数组的长度int n=nums.size();// 如果给定数据的长度为1,则已经到达最后一个下标if(n==1){return true;}// 记录当前能到达的最远位置// 初始能到达的最远位置为第一个点能到达的最远位置int max_position=nums[0];// 如果初始位置为0,则代表从第一个节点开始便无法跳跃if(max_position==0){return false;}// 从左到右开始遍历for(int i=1;i<n;i++){// 记录当前所能到达的最远位置max_position=max(max_position,nums[i]+i);// 如果当前能到达的最远位置大于数组的长度if(max_position>=n-1){// 表示可以到达最后一个下标return true;}// 如果当前能到达的最远位置等于当前位置if(max_position==i){// 这意味着会在当前位置止步不前return false;}}// 其他情况默认为不可到达return false;}
};

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/jump-game

Reference:

【Leetcode HOT100】跳跃游戏 c++_minus haha的博客-CSDN博客_有趣的跳跃c++

(LeetCode C++)跳跃游戏相关推荐

  1. LeetCode:跳跃游戏【55】

    LeetCode:跳跃游戏[55] 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个位置. 示例 1: 输入: ...

  2. LeetCode 1871. 跳跃游戏 VII(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump . 一开始,你在下标 0 处,且该位置的值一定为 '0' . ...

  3. LeetCode 1696. 跳跃游戏 VI(优先队列 / 单调队列)

    文章目录 1. 题目 2. 解题 2.1 贪心错误解 2.2 优先队列/单调队列 1. 题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 k . 一开始你在下标 0 处.每一步,你最多可 ...

  4. LeetCode 1306. 跳跃游戏 III(广度优先搜索BFS)

    1. 题目 这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处. 当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]. 请你判断自己是否能够 ...

  5. LeetCode 1340. 跳跃游戏 V(DP)

    1. 题目 给你一个整数数组 arr 和一个整数 d .每一步你可以从下标 i 跳到: i + x ,其中 i + x < arr.length 且 0 < x <= d . i - ...

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

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

  7. LeetCode 55. 跳跃游戏(贪心)

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

  8. 【LeetCode】跳跃游戏Ⅰ~Ⅵ(我真的跳晕了@_@)

    [LeetCode]跳跃游戏Ⅰ~Ⅵ

  9. Leetcode 45. 跳跃游戏 II

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

  10. LeetCode—55.跳跃游戏(Jump Game)——分析及代码(C++)

    LeetCode-55.跳跃游戏[Jump Game]--分析及代码[C++] 一.题目 二.分析及代码 1. 贪心 (1)思路 (2)代码(简洁) (3)代码(高效) (4)结果 三.其他 一.题目 ...

最新文章

  1. jquery实现层级显示 效果图_php运用无限级分类实现评论及回复功能
  2. 页面A使用window.open打开页面B,然后取得B的返回值
  3. a链接的四个伪类顺序
  4. c++采集声卡输出_其实声卡不单单只有音效,更多功能看这篇就对了
  5. IE8开发人员工具资料
  6. mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
  7. Android 扫描SD卡中的所有视频文件
  8. weblogic 修改控制台console访问路径 url
  9. BASIC语言是1964年在FORTRAN语言的基础上简化而成的
  10. SqlServer 计算年龄(岁月天)的函数
  11. 关于then()方法的理解
  12. 84键键盘没有insert键
  13. IDEA方法名,javadoc神器
  14. JS获取图片的EXIF信息+纠正图片方向
  15. 改变radio默认样式
  16. 载体坐标系-惯性坐标系-世界坐标系
  17. Python爬虫 - 爬天爬地爬空气
  18. JAVA内存管理机制
  19. 51单片机蓝牙密码锁
  20. Linux下使用cfdisk工具格式化U盘/SD卡的方法

热门文章

  1. js垃圾回收机制,内存泄露和内存溢出,解决闭包产生的内存泄露详解
  2. 最快的分布式关系型数据库MEMSQL
  3. renqun_youhua=2004892,竞价推广链接后缀标识都是什么含义?
  4. xsell5 momokai配色
  5. 三种主流RIA技术之争,你该如何选型?
  6. STL之容器stack
  7. Linux报错:Port xxx is in use by another program. Either identify and stop that program...
  8. 特殊注释标记todo的有关信息
  9. U3D_API_解析
  10. 怎样把几个PDF文档合并一个文件?