题目
考点:贪心
题解
核心思想:
某一个格子的数值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;
};