21 lines
596 B
JavaScript
21 lines
596 B
JavaScript
/**
|
|
* @param {number[]} nums
|
|
* @return {number}
|
|
*/
|
|
export const jump = function (nums) {
|
|
let step = 0 // 跳跃步数
|
|
let maxPosition = 0 // 最大位置
|
|
let lastJumpStepMax = 0 // 最后一次跳跃最大能跳的步数
|
|
|
|
for (let n = 0, len = nums.length; n < len - 1; n++) {
|
|
maxPosition = Math.max(maxPosition, nums[n] + n)
|
|
if (lastJumpStepMax === n) { // 从当前位置开始,到当前能跳的位置这个区间,谁最大,就选谁,并跳一次
|
|
lastJumpStepMax = maxPosition
|
|
step++
|
|
}
|
|
if (lastJumpStepMax > len) return step
|
|
}
|
|
|
|
return step
|
|
}
|