// 本题不必纠结,每一次该跳几步,每次都按最大步数来,只要是覆盖到最后的坐标,就代表可以到达
class Solution {
public boolean canJump(int[] nums) {
// 只有一个元素,始终可以跳到最后
if(nums.length == 1){
return true;
}
// 初始化覆盖范围,刚开始是0
int coverRange = 0;
for(int i=0; i<=coverRange; i++){
// 更新最大的覆盖范围
coverRange = Math.max(coverRange,nums[i]+i);
// 如果能够覆盖到最后一个位置,返回true
if(coverRange >= nums.length - 1){
return true;
}
}
return false;
}
}
运行结果: