
解题思路:贪心
局部最优:这题只要查看每个元素的覆盖范围即可,若覆盖范围不到最后一个元素,则代表无法到达
1.若数组只有一个元素,返回true
2.遍历数组cover次(cover会被更新),每遍历一次将当前覆盖值与之前覆盖值作比较,若当前覆盖值较大则更新覆盖范围变量cover的值。然后进行比较,查看是否能到达最后一个元素,若能返回true
3.若没有返回true,则返回false
int iterJump(int* nums, int numsSize, int index) {
if(index >= numsSize-1)
return 1;
int i;
for(i = nums[index]; i >0 ; i--) {
int k = iterJump(nums, numsSize, index+i);
if(k == 1)
return 1;
}
return 0;
}
bool canJump(int* nums, int numsSize){
return iterJump(nums, numsSize, 0);
}
