跳跃游戏2
js
// 给定一个非负整数数组,你最初位于数组的第一个位置。
// 数组中的每个元素代表你在该位置可以跳跃的最大长度。
// 你的目标是使用最少的跳跃次数到达数组的最后一个位置。
// 示例:
// 输入: [2,3,1,1,4]
// 输出: 2
// 解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
function fn(nums) {
// 储存数字可以跳跃的长度面积
let cover = 0
for(let i = 0; i <= cover; i++){
// 当前可跳跃面积 + 加上nums[i] 等于新的可跳跃面积
cover = Math.max(i + nums[i], cover)
// 如果可跳跃面积超过了数组的长度,就是可以跳跃到结尾的
if(cover >= nums.length - 1) return i + 1
}
return 0
}
console.log(fn([2,3,1,1,4]))
console.log(fn([2,2,1,1,4]))
console.log(fn([2,3,1,1,0,4]))// 给定一个非负整数数组,你最初位于数组的第一个位置。
// 数组中的每个元素代表你在该位置可以跳跃的最大长度。
// 你的目标是使用最少的跳跃次数到达数组的最后一个位置。
// 示例:
// 输入: [2,3,1,1,4]
// 输出: 2
// 解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。
function fn(nums) {
// 储存数字可以跳跃的长度面积
let cover = 0
for(let i = 0; i <= cover; i++){
// 当前可跳跃面积 + 加上nums[i] 等于新的可跳跃面积
cover = Math.max(i + nums[i], cover)
// 如果可跳跃面积超过了数组的长度,就是可以跳跃到结尾的
if(cover >= nums.length - 1) return i + 1
}
return 0
}
console.log(fn([2,3,1,1,4]))
console.log(fn([2,2,1,1,4]))
console.log(fn([2,3,1,1,0,4]))