Skip to content

55 跳跃游戏

给定一个非负整数数组,你最初位于数组的第一个位置。

数组中的每个元素代表你在该位置可以跳跃的最大长度。

判断你是否能够到达最后一个位置。

示例 1:

输入: [2,3,1,1,4]

题解

这题关键点在于目前最远能够跳到哪里,比如说[2,3,1,1,4]这个,处于0位置时最远能够跳到2的位置。那么1,2这些位置都是可达区域。如果站在1的位置,那么此时最远能够跳到4的位置。那么到2的位置,最远可跳到的位置是3。综合判断来说,1-4的位置目前都可以跳。

题解如下:

javascript
var canJump = function (nums) {
    //保存现在最远能跳到哪里
    let maxmaxIndex = nums[0]
    for(let i=1;i<nums.length;i++) {
        //如果在可跳范围之内,更新最远可跳到哪里
        if(maxmaxIndex >=i) {
            const currentMax = nums[i] + i
            maxmaxIndex = Math.max(maxmaxIndex, currentMax)
        } else {
            //否则,跳不过去了
            return false
        }
    }
    return true
}

上次更新于: