ID:55.跳跃游戏

63 阅读1分钟

题目

考点:贪心

题目链接

题解

参考大神的题解

核心思想:

某一个格子的数值n表示后面n个格子都可以作为起跳点,可以对每一个能作为起跳点的格子都尝试跳一次,把能跳到最远的距离不断更新,如果可以一直跳到最后,就成功了。

var canJump = function(nums) {
    // 当前最远能到达的位置
    let maxCanReach = 0;
    // 遍历数组,不断更新当前最远能到达的位置
    for(let i = 0; i < nums.length; i++) {
        // 循环下标i超过了当前最远能到达的位置
        // 这说明从头开始走根本走不到i的位置
        // 就更走不到末尾了
        if(i > maxCanReach) return false;
        if(maxCanReach >= nums.length - 1) return true;
        maxCanReach = Math.max(maxCanReach, nums[i] + i);
    }
    return true;
};