1.题目描述:
给定一个非负整数数组nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。
2.贪心算法:
动态维护每一步跳跃时能覆盖的最大范围,如果覆盖到了数组末位则返回true,不关注跳跃几次,每一步跳跃的距离。每个一步最大范围叠加得到最大的覆盖范围。
class Solution {
public boolean canJump(int[] nums) {
int length = 0;
for (int i = 0; i <= length; i++) {
length = Math.max(length, i + nums[i]);
if (length >= nums.length - 1) return true;
}
return false;
}
}