题目描述
拼多多2019秋招部分编程题
给定一个长度为偶数的数组arr,将该数组中的数字两两配对并求和,在这些和中选出最大和最小值,
请问该如何两两配对,才能让最大值和最小值的差值最小?
输入格式
一共2行输入。
第一行为一个整数n,2<=n<=10000, 第二行为n个数,组成目标数组,每个数大于等于2,小于等于100。
输出格式
输出最小的差值。
输入样例
6
11 4 3 5 7 1
输出样例
3
解题思路
题目要求我们求出两两之和中的最大值和最小值,并且要求最大值和最小值的差值最小。很明显这是一道贪心的题目,那么我们该如何贪心呢?我们知道一个大的数加上一个大的数只能使得这个数变化更大,相反的一个大的数加上一个小的数会使得这个数变化较小。所以这题贪心的思路就是对输入的数进行排序,最小的和最大的配对,次小的和次大的配对,依次类推。
代码如下
#include<iostream>
#include<algorithm>