蘑菇街 最大间隔 贪心

题目描述

给定一个递增序列,a1 <a2 <...<an 。定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素。问剩余序列的最大间隔最小是多少?

输入描述:

第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列。

输出描述:

输出答案。

示例1

输入

51 2 3 7 8

输出

4
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 1e2+5;
#define INF 1<<30
#define max(x,y) ((x)>(y)?(x):(y))
#define min(x,y) ((x)<(y)?(x):(y))
int arr[maxn];
int main()
{
    int n;
    while(cin>>n)
    {
        int ans=-INF;
        cin>>arr[0];
        for(int i=1;i<n;++i)
        {
            cin>>arr[i];
            ans=max(ans,(arr[i]-arr[i-1]));
        }
        cout<<ans<<endl;
    }
    return 0;
}
Last modification:January 11th, 2020 at 10:29 pm
如果觉得我的文章对你有用,请随意赞赏