[蘑菇街]最大间隔

时间限制: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 }
原文地址:https://www.cnblogs.com/bxyan/p/6952887.html