# 45. Jump Game II

## 28 Dec 45. Jump Game II

You are given a 0-indexed array of integers `nums` of length `n`. You are initially positioned at `nums`.

Each element `nums[i]` represents the maximum length of a forward jump from index `i`. In other words, if you are at `nums[i]`, you can jump to any `nums[i + j]` where:

• `0 <= j <= nums[i]` and
• `i + j < n`

Return the minimum number of jumps to reach `nums[n - 1]`. The test cases are generated such that you can reach `nums[n - 1]`.

Example 1:

```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.
```

Example 2:

```Input: nums = [2,3,0,1,4]
Output: 2
```

Constraints:

• `1 <= nums.length <= 104`
• `0 <= nums[i] <= 1000`

class Solution:
def jump(self, nums: List[int]) -> int:
current_jump_max = 0
next_jump_max = 0
result = 0
for i in range(len(nums) – 1):
next_jump_max = max(next_jump_max, i + nums[i])
print(i)
print(next_jump_max)
if i == current_jump_max:
result = result +1
current_jump_max = next_jump_max
print(“current”)
print(i)
print(‘————————-current’)
print(“———————“)
return result