题目描述:
给定一个非负整数数组 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; };