#+ANKI_DECK: study_deck_02 * TODO 0045. Jump Game II :medium: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0045. Jump Game II][0045. Jump Game II]] :END: You are given a *0-indexed* array of integers ~nums~ of length ~n~. You are initially positioned at index 0. Each element ~nums[i]~ represents the maximum length of a forward jump from index ~i~. In other words, if you are at index ~i~, you can jump to any index ~(i + j)~ where: - ~0 <= j <= nums[i]~ and - ~i + j < n~ Return /the minimum number of jumps to reach index /~n - 1~. The test cases are generated such that you can reach index ~n - 1~. *Example 1:* #+begin_src Input: nums = [2,3,1,1,4] Output: 2 Explanation: The minimum number of jumps to reach the last index is 2. Jump 1 step from index 0 to 1, then 3 steps to the last index. #+end_src *Example 2:* #+begin_src Input: nums = [2,3,0,1,4] Output: 2 #+end_src *Constraints:* - ~1 <= nums.length <= 10^{4}~ - ~0 <= nums[i] <= 1000~ - It's guaranteed that you can reach ~nums[n - 1]~. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python :lc-problem 45 :lc-lang python3 class Solution: def jump(self, nums: List[int]) -> int: #+end_src ** TODO C++ #+begin_src cpp :lc-problem 45 class Solution { public: int jump(vector& nums) { } }; #+end_src