给定一个非负整数数组,假定你的初始位置为数组第一个下标。
数组中的每个元素代表你在那个位置能够跳跃的最大长度。
请确认你是否能够跳跃到数组的最后一个下标。
例如:A=[2,3,1,1,4]A = [2,3,1,1,4]A=[2,3,1,1,4] 能够跳跃到最后一个下标,输出true
;
A=[3,2,1,0,4]A = [3,2,1,0,4]A=[3,2,1,0,4] 不能跳跃到最后一个下标,输出false
。
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int *p;
bool *l;
p=new int[n];
l=new bool[n];
int i;
for(i=0;i<n;i++)
{
cin>>p[i];
l[i]=false;
}
l[0]=true;
for(i=0;i<n-1;i++){
int j;
if(l[i])
for(j=i+1;j<=i+p[i];j++)
if(j<n)
l[j]=true;
}
if(l[n-1])
cout<<"true"<<endl;
else cout<<"false"<<endl;
return 0;
}