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:
Return the minimum number of jumps to reach nums[n - 1]. The test cases are generated such that you can reach nums[n - 1].
Greedy Insight: Use a "level-based" approach like BFS. At each "level" (jump), determine the farthest you can reach. When you've exhausted the current level's range, increment jumps and extend to the new maximum.
Why Greedy Works: By always jumping to the position that maximizes our next reach, we minimize total jumps. We greedily extend our range at each level.
nums = [2,3,1,1,4]2nums = [2,3,0,1,4]21 <= nums.length <= 10^40 <= nums[i] <= 1000It's guaranteed that you can reach nums[n - 1]Click "Run" to execute your code against test cases
Socratic guidance - I'll ask questions, not give answers