一、题目描述
二、思路
根据题意,数组中每个位置可到达的最远位置为 i + nums[i] ,用for循环遍历数组,记录从起始位置开始体跳跃可到达的最远位置并更新,当可到达的最远位置小于数组的下标时,说明最后一个位置不可达
三、代码实现
class Solution {
public boolean canJump(int[] nums) {
//可到达的最远位置
int reach = 0;
int n = nums.length;
for(int i = 0;i < n;i++){
//当数组下标大于可到达的最远位置时,说明最后一个位置不可达
if(reach < i){
return false;
}
//更新可到达的最远位置
reach = Math.max(i+nums[i],reach);
}
return true;
}
}