# 45. 跳跃游戏 II

// 给定一个非负整数数组,你最初位于数组的第一个位置。
// 数组中的每个元素代表你在该位置可以跳跃的最大长度。
// 你的目标是使用最少的跳跃次数到达数组的最后一个位置。
// 假设你总是可以到达数组的最后一个位置。
var jump = function(nums) {
  let n = 0;
  function getStep(arr, step) {
    if (arr.length === 1) {
      n = step;
      return;
    }
    const total = arr.length;
    for (let i = 0; i < arr.length; i++) {
      if (i + arr[i] + 1 >= total) {
        step = getStep(arr.slice(0, i + 1), step + 1);
        break;
      }
    }

    return step;
  }

  getStep(nums, 0);

  return n;
};

console.log(jump([2, 3, 1, 1, 4])); // 2
console.log(jump([2, 3, 0, 1, 4])); // 2
console.log(jump([1, 3, 1, 2, 3, 1, 3, 2, 4])); // 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Last Updated: 6/27/2023, 7:40:45 PM