1. var jump = function(nums) {
    2. let curIndex = 0
    3. let nextIndex = 0
    4. let step = 0
    5. // 在遍历数组时,我们不访问最后一个元素,这是因为在访问最后一个元素之前,
    6. // 我们的边界一定大于等于最后一个位置,否则就无法跳到最后一个位置了。
    7. // 如果访问最后一个元素,在边界正好为最后一个位置的情况下,
    8. // 我们会增加一次「不必要的跳跃次数」,因此我们不必访问最后一个元素。
    9. for(let i = 0; i < nums.length - 1; i++) {
    10. // 在能跳的范围内取跳到最远的地方
    11. nextIndex = Math.max(nums[i] + i, nextIndex)
    12. if(i === curIndex) {
    13. // 跳到哪了
    14. curIndex = nextIndex
    15. step++
    16. }
    17. }
    18. return step
    19. };