https://leetcode.com/problems/jump-game-ii/description/
class Solution { public: int jump(vector<int>& nums) { int n = nums.size(); if (n <= 1) return 0; vector<int> dp(n, 0); for (int i = 0; i < n; i++) { if (i + nums[i] >= n-1) return dp[i] + 1; for (int j = i + nums[i]; j >= i && dp[j] == 0; j--) dp[j] = dp[i] + 1; } return -1; /* int n = nums.size(); if (n <= 1) return 0; vector<int> dp(n, n); dp[0] = 0; for (int i = 1; i < n; i++) { for (int j = 0; j < i; j++) { if (j + nums[j] >= i) dp[i] = min(dp[i], dp[j] + 1); } } return dp[n-1]; */ } };