Jump Game II - Problem

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.

Input & Output

Example 1 — Basic Case
$ Input: nums = [2,3,1,1,4]
Output: 2
💡 Note: Jump from index 0 to 1, then jump from index 1 to the last index. Total: 2 jumps.
Example 2 — Larger Jumps
$ Input: nums = [2,3,0,1,4]
Output: 2
💡 Note: Jump from index 0 to 1 (or 2), then jump to index 4. Minimum is still 2 jumps.
Example 3 — Single Element
$ Input: nums = [1]
Output: 0
💡 Note: Already at the last index, so 0 jumps needed.

Constraints

  • 1 ≤ nums.length ≤ 104
  • 0 ≤ nums[i] ≤ 1000
  • It's guaranteed that you can reach nums[n - 1]

Visualization

Tap to expand
Jump Game II - Greedy Approach INPUT nums array (length 5) 2 i=0 3 i=1 1 i=2 1 i=3 4 i=4 Jump Ranges: 0 can reach 1,2 1 can reach 2,3,4 Goal: Reach index 4 with minimum jumps ALGORITHM STEPS 1 Initialize jumps=0, end=0, farthest=0 2 Track Farthest farthest = max(farthest, i+nums[i]) 3 At Boundary if i==end: jumps++, end=farthest 4 Return Result Return jumps when done Execution Trace: i far end jumps action 0 2 2 1 JUMP 1 4 2 1 - 2 4 4 2 JUMP FINAL RESULT Optimal Jump Path: 0 1 4 Jump 1 Jump 2 Array with path highlighted: 2 3 1 1 4 Output: 2 OK - Minimum jumps found using greedy O(n) time, O(1) space Key Insight: The greedy approach tracks the farthest reachable index at each step. When we reach the current boundary (end of current jump range), we must make a jump. At that point, we update the boundary to the farthest point we can reach. This ensures minimum jumps because we always extend our reach as far as possible before committing to a jump. Time: O(n), Space: O(1). TutorialsPoint - Jump Game II | Greedy (Optimal) Approach
Asked in
Google 45 Amazon 38 Microsoft 32 Facebook 28
65.0K Views
High Frequency
~25 min Avg. Time
2.1K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen