目录
一、问题描述:
二、整体思路:
首先每个值都有可能为min(b),那么对于每个可能为min(b)的值,要使得max(a)尽可能小,因此枚举所有相差最小的一对数(对输入数据先作排序,从第二个数开始遍历,同时每次枚举其前一个数),找出最小的这对数的差值即可
三、代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int arr[N];
int main(){
int n;cin>>n;
for(int i=1;i<=n;i++){
cin>>arr[i];
}
sort(arr+1,arr+1+n);
int ans=INT_MAX;
for(int i=2;i<=n;i++){
if(arr[i]-arr[i-1]<ans) ans=arr[i]-arr[i-1];//找出差值最小的一对数
}
cout<<ans;
return 0;
}