时间限制:1秒 空间限制:32768K 热度指数:9268
题目描述
给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?
输入描述:
第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。输出描述:
输出答案。
输入例子:
5
1 2 3 7 8
输出例子:
4
1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 5 using namespace::std ; 6 7 int main() 8 { 9 int n; 10 vector<int> v; 11 12 while(cin>>n) 13 { 14 int temp; 15 for(int i=0;i<n;++i) 16 { 17 cin>>temp; 18 v.push_back(temp); 19 20 } 21 int max_v=0; 22 int min_v=9999; 23 for (int i=0; i< n-1;++i) 24 { 25 max_v=max(max_v,v[i+1]-v[i]); 26 } 27 for(int i=1;i<n-1;++i) 28 { 29 min_v=min(min_v,v[i+1]-v[i-1]); 30 } 31 int res=max_v>min_v?max_v:min_v; 32 cout<<res<<endl; 33 34 } 35 return 0; 36 }