这道题从前往后便利,记录能到达的最大Index,如果发现当前index大于最大index,则不可达。
然后判断是否大于了最大index即可。
bool canJump(vector<int>& nums) {
int len = nums.size();
int maxIndex = 0;
if (maxIndex >= len - 1) return true;
for (int i = 0;i<len;++i) {
if (i>maxIndex) return false;
if (nums[i] + i > maxIndex) maxIndex = nums[i] + i;
if(maxIndex >= len - 1) return true;
}
return false;
}