思路:
如果某一个作为起跳点的格子可以跳跃的距离是3,那么表示后面3个格子都可以作为起跳点,可以对每一个能作为起跳点的格子都尝试跳一次,把能跳到最远的距离不断更新,如果可以一直跳到最后,就成功了
class Solution {
public:
bool canJump(vector& nums) {
int n = nums.size();
if (n == 1) return true;
int index = 0;
int fast_dis = 0;
while (fast_dis < n && index <= fast_dis) {
fast_dis = max(fast_dis, nums[index] + index);
index++;
}
if (fast_dis >= n - 1) return true;
return false;
}
};



