LintCode : 跳跃游戏
2016-12-04 15:46
746 查看
跳跃游戏
描述笔记
数据
评测
给出一个非负整数数组,你最初定位在数组的第一个位置。
数组中的每个元素代表你在那个位置可以跳跃的最大长度。
判断你是否能到达数组的最后一个位置。
注意事项
这个问题有两个方法,一个是
贪心和
动态规划。
贪心方法时间复杂度为
O(N)。
动态规划方法的时间复杂度为
为O(n^2)。
我们手动设置小型数据集,使大家阔以通过测试的两种方式。这仅仅是为了让大家学会如何使用动态规划的方式解决此问题。如果您用动态规划的方式完成它,你可以尝试贪心法,以使其再次通过一次。
您在真实的面试中是否遇到过这个题?
Yes
样例
A = [2,3,1,1,4],返回
true.
A = [3,2,1,0,4],返回
false.
标签
相关题目
贪心算法
维护一个right (表示右边能跳到的最远的点),从左往右扫描,根据当前可跳的步骤不断更新right ,当right到达终点,即可返回true. 若更新完right后,right未
动,并且index = right,而且这时没到达终点,代表我们不可能到达终点了。(当前index的可跳值应该是0)
/**
* @param A:
* A list of integers
* @return: The boolean answer
*/
public boolean canJump(int[] A) {
// wirte your code here
if (A == null || A.length == 0) {
return false;
}
int right = Integer.MIN_VALUE;
for (int i = 0; i < A.length; i++) {
right = Math.max(right, i + A[i]);
if (right == A.length - 1) {
return true;
}
if (i == right) {
return false;
}
}
return true;
}
相关文章推荐
- Lintcode—跳跃游戏
- lintcode--跳跃游戏--跳跃游戏Ⅱ
- LintCode Jump Game 跳跃游戏
- lintcode-117-跳跃游戏 II
- LintCode Jump Game 跳跃游戏
- LintCode:跳跃游戏 II
- LintCode : 跳跃游戏
- lintcode --跳跃游戏II
- Lintcode 跳跃游戏
- LintCode:跳跃游戏
- Leet Code 45 Jump Game II - 跳跃游戏 - Java
- Leet Code 55 Jump Game - 跳跃游戏 - Java
- Lintcode 172 Trailing Zeros
- LintCode : 有效回文串
- LintCode Insert a Node in a Binary Search Tree 在二叉查找树中插入节点
- LintCode : 加一
- lintcode 中等题:Majority number II 主元素 II
- Android_手把手教你写跳跃类游戏(2)
- CODEVS——T 1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛
- LintCode之3 统计数字