Hard
Jump Game II
Hard
0 submissions
50 coins
+200 XP
Array
Dynamic Programming
Problem Description
## Problem
You are given a **0-indexed** array of integers `nums` of length `n`. You are initially positioned at `nums[0]`.
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]`
- `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]`.
## Examples
**Example 1:**
```
Input: nums = [2,3,1,1,4]
Output: 2
Explanation: 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
```
**Example 3:**
```
Input: nums = [1,2,1,1,1]
Output: 3
Explanation: 0 -> 1 -> 3 -> 4
```
## Approach Hints
Use a greedy approach: maintain `curEnd` (the farthest index reachable with current number of jumps) and `farthest` (the farthest index reachable with one more jump). When you reach `curEnd`, increment jumps and set `curEnd = farthest`.
Constraints
- `1 <= nums.length <= 10000`
- `0 <= nums[i] <= 1000`
- The generated input guarantees you can reach `nums[n - 1]`.
Need help?
Connect with expert programmers for real-time collaborative coding, video meetings, and whiteboard sessions via CodeConnect.
Video Call
Whiteboard
Live Coding
Screen Share