(LeetCode C++)跳跃游戏
给定一个非负整数数组 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++)跳跃游戏相关推荐
- LeetCode:跳跃游戏【55】
LeetCode:跳跃游戏[55] 题目描述 给定一个非负整数数组,你最初位于数组的第一个位置.数组中的每个元素代表你在该位置可以跳跃的最大长度.判断你是否能够到达最后一个位置. 示例 1: 输入: ...
- LeetCode 1871. 跳跃游戏 VII(贪心)
文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的二进制字符串 s 和两个整数 minJump 和 maxJump . 一开始,你在下标 0 处,且该位置的值一定为 '0' . ...
- LeetCode 1696. 跳跃游戏 VI(优先队列 / 单调队列)
文章目录 1. 题目 2. 解题 2.1 贪心错误解 2.2 优先队列/单调队列 1. 题目 给你一个下标从 0 开始的整数数组 nums 和一个整数 k . 一开始你在下标 0 处.每一步,你最多可 ...
- LeetCode 1306. 跳跃游戏 III(广度优先搜索BFS)
1. 题目 这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处. 当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]. 请你判断自己是否能够 ...
- LeetCode 1340. 跳跃游戏 V(DP)
1. 题目 给你一个整数数组 arr 和一个整数 d .每一步你可以从下标 i 跳到: i + x ,其中 i + x < arr.length 且 0 < x <= d . i - ...
- LeetCode 45. 跳跃游戏 II(贪心/BFS,难)
文章目录 1. 题目 2. 解题 2.1 贪心 2.2 BFS 1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的 ...
- LeetCode 55. 跳跃游戏(贪心)
1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1:输入: [2,3,1,1,4] 输出: ...
- 【LeetCode】跳跃游戏Ⅰ~Ⅵ(我真的跳晕了@_@)
[LeetCode]跳跃游戏Ⅰ~Ⅵ
- Leetcode 45. 跳跃游戏 II
Leetcode 45. 跳跃游戏 II 题目 给你一个非负整数数组 nums ,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组 ...
- LeetCode—55.跳跃游戏(Jump Game)——分析及代码(C++)
LeetCode-55.跳跃游戏[Jump Game]--分析及代码[C++] 一.题目 二.分析及代码 1. 贪心 (1)思路 (2)代码(简洁) (3)代码(高效) (4)结果 三.其他 一.题目 ...
最新文章
- jquery实现层级显示 效果图_php运用无限级分类实现评论及回复功能
- 页面A使用window.open打开页面B,然后取得B的返回值
- a链接的四个伪类顺序
- c++采集声卡输出_其实声卡不单单只有音效,更多功能看这篇就对了
- IE8开发人员工具资料
- mysql通过集合查询_MySQL使用集合函数进行查询操作实例详解
- Android 扫描SD卡中的所有视频文件
- weblogic 修改控制台console访问路径 url
- BASIC语言是1964年在FORTRAN语言的基础上简化而成的
- SqlServer 计算年龄(岁月天)的函数
- 关于then()方法的理解
- 84键键盘没有insert键
- IDEA方法名,javadoc神器
- JS获取图片的EXIF信息+纠正图片方向
- 改变radio默认样式
- 载体坐标系-惯性坐标系-世界坐标系
- Python爬虫 - 爬天爬地爬空气
- JAVA内存管理机制
- 51单片机蓝牙密码锁
- Linux下使用cfdisk工具格式化U盘/SD卡的方法
热门文章
- js垃圾回收机制,内存泄露和内存溢出,解决闭包产生的内存泄露详解
- 最快的分布式关系型数据库MEMSQL
- renqun_youhua=2004892,竞价推广链接后缀标识都是什么含义?
- xsell5 momokai配色
- 三种主流RIA技术之争,你该如何选型?
- STL之容器stack
- Linux报错:Port xxx is in use by another program. Either identify and stop that program...
- 特殊注释标记todo的有关信息
- U3D_API_解析
- 怎样把几个PDF文档合并一个文件?