给定一个非负整数的数组,你位于数组的第一位。
数组中每个元素的值代表他能跳跃的最远距离。你的目标是用最少的跳跃次数到达数组最后一个位置。
输入样例
5
2 3 1 1 4
输出样例
2
#include<iostream>
using namespace std;
int main()
{
int i,j,n,cnt=0,max=0,t=0;
cin>>n;
int s[n];
for(i=0;i<n;i++){
cin>>s[i];
}
for(i=0;max<n-1;cnt++)
{
for(j=i;j<=max;j++)
if(t<s[j]+i)
t=s[j]+i;
i=max+1;
if(t>max)
max=t;
}
cout<<cnt;
}