55. Jump Game

Leetcode link

题目简介

/**
 * @param {number[]} nums
 * @return {boolean}
 */

题目给我们一个数字数组 nums 数组元素代表如果站在这一个元素上最多可以往前跳几格

我们一开始在下标 0 的元素上,题目要求我们判断我们是否可以跳到最后的元素上

解题思路

由于题目的约束是最多可以往前跳几格,所以我们只需要尽可能的往前跳就完事了

这就需要用到贪心的思路了,我们每次都尽可能的往前跳,直到无法再往前或者超越数组末尾

Javascript

/**
 * @param {number[]} nums
 * @return {boolean}
 */
var canJump = function (nums) {
    let cur = 0
    let next = 0

    while (next < nums.length-1) {
        let farthest = 0
        for (let i = cur; i <= next; i++) {
            farthest = Math.max(farthest, i + nums[i])
        }
        if(next === farthest) {
            return false
        }
        cur = next+1
        next = farthest
    }
    return true
};

results matching ""

    No results matching ""