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