给出一个非负整数数组,你最初定位在数组的第一个位置。
数组中的每个元素代表你在那个位置可以跳跃的最大长度。
判断你是否能到达数组的最后一个位置。
class Solution {
public:
/*
* @param A: A list of integers
* @return: A boolean
*/
bool canJump(vector<int> &A) {
// write your code here
if(A.size()==1){
return true;
}
if(A.size()==2&&A[0]>0){
return true;
}
int k=0,m=0;
for(int i=0;i<A.size();i++){
if(A[i]==0){
for(int j=k;j<i;j++){
if(A[j]+j>i){
m=1;
i=j;
break;
}
}
if(m==0){
return false;
}else{
m=0;
}
}
k=i;
i=i+A[i]-1;
if(i>=A.size()){
return true;
}
}
}
};
public:
/*
* @param A: A list of integers
* @return: A boolean
*/
bool canJump(vector<int> &A) {
// write your code here
if(A.size()==1){
return true;
}
if(A.size()==2&&A[0]>0){
return true;
}
int k=0,m=0;
for(int i=0;i<A.size();i++){
if(A[i]==0){
for(int j=k;j<i;j++){
if(A[j]+j>i){
m=1;
i=j;
break;
}
}
if(m==0){
return false;
}else{
m=0;
}
}
k=i;
i=i+A[i]-1;
if(i>=A.size()){
return true;
}
}
}
};