基本思路不如看代碼注釋
class Solution {
public boolean canJump(int[] nums) {
int n=nums.length;
if(n==1) return true;
int maxlength=0;//最大跳躍長度
for(int i=0;i<n-1;i++){//遍歷到倒數(shù)第二個(gè)元素即可筷厘,倒數(shù)第一個(gè)元素不用遍歷
if(i<=maxlength){//如果第i個(gè)節(jié)點(diǎn)剛好是可以到達(dá)的節(jié)點(diǎn)
maxlength=Math.max(maxlength,i+nums[i]);//就更新maxlength
}
if(maxlength>=n-1){//如果能大于或等于倒數(shù)第一個(gè)元素逝嚎,代表肯定能到達(dá)最后一個(gè)節(jié)點(diǎn)
return true;
}
}
return false;
}
}