给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
#include <iostream>
using namespace std;
int main()
{
int a[101];
int i,tmax,tmin,n;
while(cin>>n)
{
cin>>a[0];
if(n==1 || n==2)
cout<<0<<endl;
tmax = 0;
tmin = 0x07ffffff;
for(i=1; i<n; ++i)
{
cin>>a[i];
if(a[i] - a[i-1] > tmax)
tmax = a[i] - a[i-1];
if(i > 1 && tmin > a[i]-a[i-2])
{
tmin = a[i] - a[i-2];
}
}
cout<<(tmax>tmin ? tmax : tmin)<<endl;
}
return 0;
}