1.最小化战斗力差距 - 蓝桥云课 (lanqiao.cn)
贪心
先看一下样例:
1划分到a队,2,3划分到右队,1是a队的最大值,2是b队的最小值。
max_b[min]-max_a[max]=2-1=1。
code
我们用一个变量res来存我们的结构,因为题目要求求的是最小值,所以这个变量不能初始化为0,应该初始化为一个较大值。
#include <iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N];
int main()
{
int n=0;cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
//首先排个序,让小的在左边,大的在右边
sort(a+1,a+1+n);
int res=a[2]-a[1]; //初始化答案,因为最少要有两个队员,a队一个,b队一个
for(int i=1;i<n;i++)
{
res=min(res,a[i+1]-a[i]); //排完序a[i+1]就一定比a[i]大
}
cout<<res<<endl;
return 0;
}