Back to all solutions
#45 - Jump Game II
Problem Description
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] 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].
Solution
/**
* @param {number[]} nums
* @return {number}
*/
var jump = function(nums) {
let result = 0;
let max = 0;
let previous = 0;
for (let index = 0; index < nums.length - 1; index++) {
max = Math.max(max, index + nums[index]);
if (index === previous) {
result++;
previous = max;
}
}
return result;
};