您的位置:首页 > 其它

leetCode 55.Jump Game(跳跃游戏) 解题思路和方法

2015-07-14 17:59 537 查看


Jump Game

Given an array of non-negative integers, you are initially positioned at the first index of the array.

Each element in the array represents your maximum jump length at that position.

Determine if you are able to reach the last index.

For example:

A = [2,3,1,1,4], return true.

A = [3,2,1,0,4], return false.

思路:这题相比于jump Game II多了0的填充,有可能是无法到达最终点的。代码运用贪心思想,当无论怎么走只能走到0的时候返回false。
具体代码如下:
public class Solution {
public boolean canJump(int[] nums) {
if(nums.length == 0)
return false;
int i = 0;
//判断有没有0,没有0的肯定能达到
while(i < nums.length){
if(nums[i] == 0){
break;
}
i++;
}
//没有0,肯定能达到
if(i == nums.length){
return true;
}
i = 0;
while(i < nums.length){
if(i + nums[i] >= nums.length - 1)
return true;
if(nums[i] == 0)
return false;
int max = 0;
int index = 0;
//下一步能前进最大的步骤
for(int j = i+1; j - i <= nums[i]; j++){
if(max < j - i + nums[j]){
max = j - i + nums[j];
index = j;
}
}//走到下一步的索引
i = index;
}
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: