class Solution { public: int jump(vector<int>& nums) { const int maxn = 10010; const int n = nums.size()+1010; const int INF = 0x3f3f3f3f; int f[n]; fill(f,f+n,0); for(int i = nums.size() - 2;i >=0;i--) { if(nums[i] == 0) { f[i] = INF; } for(int j = 1;j <= nums[i];j++) { if(j == 1) { f[i] = f[i+j]+1; }else{ f[i] = min(f[i],f[i+j]+1); } } } return f[0]; } };