LeetCode:跳跃游戏【55】
LeetCode:跳跃游戏【55】
题目描述
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。
示例 1:
输入: [2,3,1,1,4] 输出: true 解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。
示例 2:
输入: [3,2,1,0,4] 输出: false 解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。
题目分析
这道题最好的解法应该就是动态规划,但是怎么个规划法呢?
我们可以这样想,如果倒数第二个元素可以大于等于1,那么我们就可以把问题转换为是否到达倒数第二个元素,那么一步一步向前推就把问题分解了。
我们需要看第N个元素能够跳跃的最远范围内,是否存在可以到达终点的节点。
Java题解
class Solution {public boolean canJump(int[] nums) {Index[] dp = new Index[nums.length];for (int i = 0; i < dp.length; i++) {dp[i] = Index.UNKNOWN;}dp[dp.length-1]=Index.GOOD;for (int i = nums.length - 2; i >= 0; i--) {int furthestJump = Math.min(i + nums[i], nums.length - 1);for (int j = i + 1; j <= furthestJump; j++) {if (dp[j] == Index.GOOD) {dp[i] = Index.GOOD;break;}}}return dp[0]==Index.GOOD;}
}enum Index{GOOD,BAD,UNKNOWN
}
转载于:https://www.cnblogs.com/MrSaver/p/9495587.html
LeetCode:跳跃游戏【55】相关推荐
- Leetcode跳跃游戏
文章目录 Leetcode跳跃游戏 题目简介 跳跃游戏1 跳跃游戏2 Leetcode跳跃游戏 题目简介 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最 ...
- leetcode 跳跃游戏系列 c++
文章目录 [55. 跳跃游戏](https://leetcode-cn.com/problems/jump-game/) [45. 跳跃游戏 II](https://leetcode-cn.com/p ...
- LeetCode(跳跃游戏)
20200404 题目 :跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否可以到达最后的位置. 示例: 输入: [2,3,1 ...
- Leetcode 跳跃游戏
跳跃游戏 题目描述: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个下标. 提示: 1 <= ...
- leetcode跳跃游戏C语言,LeetCode:跳跃游戏
给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] 输出: true ...
- leetcode:跳跃游戏 IV
dijk 22/32 class Solution {public:int minJumps(vector<int>& arr) {// dijk? 最短路径?if(arr.siz ...
- 跳跃游戏 I - VII
跳跃游戏 [55. 跳跃游戏](https://leetcode.cn/problems/jump-game/) [45. 跳跃游戏 II](https://leetcode.cn/problems/ ...
- 《LeetCode力扣练习》第55题 跳跃游戏 Java
<LeetCode力扣练习>第55题 跳跃游戏 Java 一.资源 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大 ...
- 贪心——跳跃游戏(Leetcode 55)
题目选自Leetcode 55. 跳跃游戏 这道题表面上不是求最值,但是可以改一改: 请问通过题目中的跳跃规则,最多能跳多远?如果能够越过最后一格,返回 true,否则返回 false. 所以解题关键 ...
最新文章
- linux c 获取进程 可执行文件路径
- 机器学习算法源码全解析(三)-范数规则化之核范数与规则项参数选择
- 用python做加法_Python不用加减乘除做加法
- 一款不错的编程字体Source Code Pro
- lisp 设计盘形齿轮铣刀_用AutoLISP程序设计盘形齿轮铣刀渐开线齿形
- 项目管理系统Redmine安装
- EditPlus 使用技巧集萃(转)
- apache2 wordpress目录权限_Linux下WordPress建站步骤
- 怎样png转jpg还可以保持原有大小?
- python初学者-计算小于100的最大素数
- 相关系数excel_如何求组内相关系数ICC?(应用篇)
- excel 一列的数据除以另一列
- @linux下tar解压失败a lone zero解决方法
- 数据分析师,如何向亲友解释自己的工作
- 中国有嘻哈:网易云、虾米音乐歌词爬虫项目分享
- 名帖97 赵孟頫 小楷《洛神赋》
- Nessus 扫描web服务
- C语言随机刷新,C语言 刷新缓冲区
- 分别解释final,finally,finalize是什么?
- C#输入三条边判断是否为三角形