Leetcode 55. 跳跃游戏
思路:
用一个覆盖范围cover来表示当前坐标元素所能跳跃到的距离范围;
遍历在覆盖范围内的元素,一个个往后继续试它们的覆盖范围;
如果新的cover位置更远,就取代之;
直到覆盖范围中有最后一个元素位置,即可返回true;
否则表示没有覆盖到最后一个元素,返回false。
实现代码如下:
class Solution {
public boolean canJump(int[] nums) {
int cover=0;
if(nums.length==1) return true;
//在覆盖范围内,一个个往后继续试覆盖范围
//如果新的cover位置更远,就取代之
//直到覆盖范围中有最后一个元素位置,即可返回true
for(int i=0;i<=cover;i++) {
cover=Math.max(cover,i+nums[i]);
if(cover>=nums.length-1) {
return true;
}
}
return false;
}
}