lintcode:跳跃游戏——解析
来源:互联网 发布:数据库设置主键的语句 编辑:程序博客网 时间:2024/05/19 06:17
跳跃游戏:
给出一个非负整数数组,你最初定位在数组的第一个位置。
数组中的每个元素代表你在那个位置可以跳跃的最大长度。
判断你是否能到达数组的最后一个位置。
样例
A = [2,3,1,1,4],返回 true.
A = [3,2,1,0,4],返回 false.
分析:运用贪心算法,算出每次能够到达的最远路径,同当前数组长度进行比较。
算法解析:
public boolean canJump(int[] A) {
// wirte your code here
int len=A.length;
int i=0;
int max=0;
while(i<=max){ //如果当前能够到达的最远距离已经小于当前数组下标了,直接返回false(包括循环结束) 例如[1,1,0,2];[1,1,2,1,0]
if((i+A[i])>max) //当前能够到达的最远距离,是当前数组下标加上数组值。
max=i+A[i];
i++; //数组下标向后移动一位
if(max>=len-1) //如果当前能到达的最远距离,已经超过数组长度,则返回true.
return true; //注:数组长度应该减1,因为第一步,并没有移动,直接到达了数组第一位.
}
return false;
}
}
阅读全文
0 0
- lintcode:跳跃游戏——解析
- Lintcode—跳跃游戏
- lintcode——跳跃游戏1、2
- LintCode-跳跃游戏
- lintcode-跳跃游戏-116
- [LintCode] 跳跃游戏
- lintcode ----跳跃游戏
- LintCode:跳跃游戏
- LintCode:跳跃游戏 II
- [Lintcode]跳跃游戏 II
- LintCode : 跳跃游戏
- LintCode 116-跳跃游戏
- LintCode 跳跃游戏 解答
- LintCode : 跳跃游戏
- 跳跃游戏-LintCode
- 跳跃游戏 II-LintCode
- lintcode--跳跃游戏
- lintcode --跳跃游戏II
- 内省操作javabean
- Java中String对象创建机制详解
- 基于Scrapy分布式爬虫的开发与设计
- [BZOJ]1192: [HNOI2006]鬼谷子的钱袋
- 2017年上海金马五校程序设计竞赛(网上资格赛)Problem H : DHU Club Festival
- lintcode:跳跃游戏——解析
- 51Nod-1799-二分答案
- 设计模式之策略模式
- mongoose的基本用法
- (LeetCode) 199. Binary Tree Right Side View
- JQuery快速入门
- php验证码类
- 基于链表及环形队列的生产者与消费者简单实现
- jsp生命周期