给定一个长度为偶数的数组arr,将该数组中的数字两两配对并求和,在这些和中选出最大和最小值,请问该如何两两配对,才能让最大值和最小值的差值最小?
一共2行输入。第一行为一个整数n,2<=n<=10000, 第二行为n个数,组成目标数组,每个数大于等于2,小于等于100。
输出最小的差值。
4 2 6 4 3
1
6 11 4 3 5 7 1
3
package main import ( "fmt" "sort" ) func main() { var n int fmt.Scan(&n) arr:=make([]int,n) for i:=0;i<n;i++{ fmt.Scan(&arr[i]) } sort.Ints(arr) sum:=make([]int,n/2) i,j:=0,n-1 for i<j{ sum[i]=arr[i]+arr[j] i++ j-- } sort.Ints(sum) fmt.Print(sum[i-1]-sum[0]) }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题