(javaScript)leetcode每日一题 - 55. 跳跃游戏

108 阅读1分钟

leetcode每日一题 - 55 55. 跳跃游戏

image.png

题解

这里贪心算法是最容易理解的,取出最后一位,从i = nums.length-2开始从后向前循环。只要前一位的值加上该值的索引大于等于当前记录值maxJump(即索引),就把maxJump赋值为当前索引i,最后判断maxJump是否为0,是的话返回true,否则为false

贴出代码

let nums: number[] = [2, 3, 1, 1, 4]
  // nums   [2, 3, 1, 1, 4] 能够走的步数
  // length  0  1  2  3  4 索引
  function canJump(nums: number[]): boolean {
    let maxJump = nums.length - 1
    for (let i = nums.length - 2; i >= 0; i--) {
      if (nums[i] + i >= maxJump) {
        maxJump = i
      }
    }
    return maxJump === 0
  }
  console.log(canJump(nums))