class Solution {
public:
bool canJump(vector<int>& nums) {
int n = nums.size();
int current_length = nums[0];
if(n == 1) return true;
if(current_length == 0)return false;
for(int i = 1; i < n; i++) {
current_length = max(nums[i], current_length-1);
if(current_length == 0 && i != n-1)return false;
}
return true;
}
};