题目描述:

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标。

解析:

贪心算法:
1.定义一个变量maxJump为数组最大下标index值
2.遍历循环数组,判断当前的值和下标index值的加和是否大于等于maxJump,
如果等于,则更新maxJump的值为当前index值
3.最后判断maxJump是否等于零,是则返回true,否则返回false

Java:

public boolean canJump(int[] nums) {
        int maxJump = nums.length - 1;
        for(int i = nums.length - 2; i >= 0; i--) {
            if(i + nums[i] >= maxJump) {
                maxJump = i;
            }
        }
        return maxJump == 0;
    }

JavaScript:

var canJump = function(nums) {
    let maxJump  = nums.length - 1;
    for(let i = nums.length - 2; i >= 0; i--) {
        if(i + nums[i] >= maxJump) {
            maxJump = i;
        }
    }
    return maxJump === 0;
};