[55] 跳跃游戏

54 阅读1分钟

思路

1.先初始一个变量maxJump为最后一位的index

2.往前遍历i的index和值的和是不是大于等于maxJump,满足就把maxJump更新为i

3.最后判断maxJump有没有到达第一位

/*
 * @lc app=leetcode.cn id=55 lang=javascript
 *
 * [55] 跳跃游戏
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @return {boolean}
 */
var canJump = function (nums) {
  let maxJump = nums.length - 1
  // for循环最后一位往前,当前的index是不是小于i的index+i的值
  for (let i = nums.length - 2; i >= 0; i--) {
    if (maxJump <= nums[i] + i) {
      maxJump = i
    }
  }
  // 判断能不能到index为0,也就是到达第一位
  return maxJump === 0
}
// @lc code=end