题目描述
给定一个数组,从数组头开始,每一个位置上的数字代表你可前进的步数,求是否能到结尾
解题思路
设置一个reachable,表示当前可达的位置,初始为0。
每走一步,更新reachable = max(reachable, i+arr[i]),如果i>reachable则表示不可达,返回false。
bool CanJump(int arr[], int length){
int reachable = 0;
for(int i=0; i<length; i++){
if(i>reachable)
return false;
reachable = max(reachable, i+arr[i]);
}
return true;
}
网友评论