题目
1.
bool canJump(int* nums, int numsSize){
int i , j ;
int away = 0;
if(numsSize == 1) return true;
else{
for( i = 0 ; i < numsSize-1 ; i++ ){//最后一个数字不必判断
if( away >= i ){//当此时最远距离可以到达此时的位置i,进入循环
if( (nums[i] + i) > away ){//更新最远距离
away = nums[i] + i;
}
if( away >= numsSize-1 ) return true;//当最远距离可以到达数组最后一个位置,则返回true
}
}
}
return false;
}
bool canJump(int* nums, int numsSize){
int i , j ;
int away = 0;
if(numsSize == 1) return true;//如果只有一个数字,则一定是true
else{
for( i = 0 ; i < numsSize ; i++ ){
if(away < i ) return false;//如果最远距离到达不了此时的位置i,则返回false
if( (nums[i] + i) > away ){//当最远距离away>=i时,更新最远距离。
away = nums[i] + i;
}
}
}//当执行结束到最后一个数字,则返回true
return true;
}