LeetCode T55 跳跃游戏
题目思路:
这题我们可以换一个思想,将跳跃问题转换为覆盖问题,我们每遇到一个元素就跳到这个元素可以覆盖到的最大位置,当能覆盖下整个数组的时候,就说明能达到,返回true,否则返回false
这题的局部最优是每次取最大跳跃步数 全局最优是最后得到整体最大覆盖范围,看是否能到终点。
题目代码:
class Solution {
public boolean canJump(int[] nums) {
int cover = 0;
if(nums.length == 1)
{
return true;
}
for(int i = 0;i<=cover;i++)
{
cover = Math.max(i+nums[i],cover);
if(cover>=nums.length-1)
{
return true;
}
}
return false;
}
}