一 题目:
二 思路:
其实就是贪心算法,尽量找到能跳跃的最远位置,如果能跳跃的最远位置是0,就结束
三 代码:
public boolean canJump(int[] nums) {
if (nums.length<=1){
return true;
}
//尽量去能跳更远的格子里去
int target=nums.length-1;
int max=nums[0];
for (int i = 1; i < nums.length; i++) {
//如果已经超过能跳跃位置
if (i>max){
return false;
}
//判断时候有更远的位置
if (nums[i]+i>max){
//如果这个位置能跳的更远,就这个位置
max=nums[i]+i;
}
//当前能跳跃的最远的值是不是已经到终点之后
if (max>=target){
return true;
}
}
return max>=target;
}