Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Determine if you are able to reach the last index.
For example:
A = [2,3,1,1,4],
return true.
A = [3,2,1,0,4],
return false.
class Solution {
public:
bool canJump(int A[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i,j;
int count=0;
for(i=0 ; i<n ; ){
if(A[i]+i>=n-1)
return true;
if(A[A[i]+i]==0 && A[i]!=0){
count=1;
for(j=A[i]+i-1 ; j>i ; j--){
if(A[j]>count){
i=j;
break;
}
}
if(j==i)
return false;
}else if(A[A[i]+i]!=0){//Here there is a problem
i=A[i]+i;
}
else
return false;
}
}
};
本文探讨了如何通过算法判断在给定的最大跳跃长度数组中是否能够到达数组的末尾。详细解释了从第一个元素开始遍历,利用最大跳跃长度进行递进判断的方法,并通过实例演示了实现过程。
393

被折叠的 条评论
为什么被折叠?



