题目大意
给出一个长度为n(2<=n<=1e5)的数组。
删除一个数,使得数组中最大值减最小值的差最小。
解题思路
最大值减最小值的差只与最大值和最小值有关。
代码
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int a[202020];
int main()
{
int n;
scanf("%d",&n);
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
int m1=a[n]-a[1];
int m2=a[n-1]-a[1];
int m3=a[n]-a[2];
int ans=min(m1,m2);
ans=min(ans,m3);
cout<<ans<<endl;
}