题目描述
给定一个非负整数数组,您最初位于数组的第一个索引处。
数组中的每个元素表示您在该位置的最大跳跃长度。
确定您是否能够达到最后的索引。
例如:
A = [2,3,1,1,4],return true。
A = [3,2,1,0,4],return false。
#include <iostream>
using namespace std;
#define N 1000
int A[N];
int flag;
void canJump(int A[], int n) {
int max=0;
int i;
for(i=0;i<n&&i<=max;i++){//max>=i保证能跳到i处
if(i+A[i]>max){
max=i+A[i];
}
}
if(max>=n-1)
cout<<"true"<<endl;
else
cout<<"false"<<endl;
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>A[i];
}
canJump(A,n);
}