class Solution {
public:
int jump(vector<int>& nums) {
int ans = 0;
int curIdx = 0;
while(curIdx < nums.size() -1){
int r = nums[curIdx];
int nextIdx = -1;
int nextMove = -1;
for(int i=1;i<=r;i++){
if(curIdx + i >= nums.size()){
continue;
}
int n = nums[curIdx+i];
if(n + i >= nextMove || curIdx + i == nums.size() - 1){
nextMove = n + i;
nextIdx = curIdx+i;
}
}
ans++;
curIdx = nextIdx;
}
return ans;
}
};