您的位置:首页 > 编程语言 > Java开发

(Java)LeetCode-55. Jump Game

2016-10-04 14:03 429 查看
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
.

这道题是之前过河问题的简化版,只需要判断能否过河即可。

我的思路是,从前往后遍历数组,维护一个表示可以跳到的最远的地方的变量,maxCanReach = max(nums[i]+i) ,如果maxCanReach 达到或超过了终点,则返回true,如果i > maxCanReach那么久返回false  代码如下:

public class Solution {
public boolean canJump(int[] nums) {
int maxCanReach = nums[0];
int temp = 0;
for(int i = 0; i < nums.length; i++){
if(i > maxCanReach){
return false;
}
temp = nums[i]+i;
if(temp > maxCanReach){
maxCanReach = temp;
}
if(maxCanReach >= nums.length-1){
return true;
}
}
return true;}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Array greedy