解题思路
每次取最大跳跃步数,得到局部的最大解,整体最优解:最后得到整体最大覆盖范围,看是否能到终点。
class Solution {
public boolean canJump(int[] nums) {
if(nums.length == 1) return true;
int preMax = 0;//表示前面的能跳的最大步数
// preMax = nums[0];
for(int i = 0;i <= preMax;i++){
preMax = Math.max(preMax,nums[i] + i);
if(preMax >= nums.length - 1) return true;
}
return false;
}
}