0

我环顾四周,在这里发现了一些类似的问题,但没有一个专门解决这个问题。

我需要做的是,给定一组正整数(假设该组具有偶数大小),将值分组,使每对的平均值尽可能接近其他值 - 也就是说,这组对的平均值具有最小的可能范围。

示例:如果我有

[1, 3, 3, 5]

我会得到两组:

[1, 5] [3, 3]

所以它们的平均值尽可能接近——在这种情况下,相同。

这就像将最高值与最低值配对一样简单,然后将第二高与第二低配对,依此类推,还是有更好的方法?

4

2 回答 2

0

对数组进行排序,然后取第一个和最后一个元素,第二个和倒数第二个元素等等......

于 2017-03-20T14:49:47.110 回答
0

这取决于你需要什么。对于您的问题来说,有许多对,它们的平均数和总平均数之间的平均差值是更好的,还是您希望尽可能多的对数接近总平均数?

在第一种情况下,您可以使用您的方法,其次,我会找到最接近平均值的对,然后是下一个,等等...

例如,对于这个输入:[1, 1, 1, 25, 26, 100]pair[25, 26]的平均值与总平均值最接近。

如果您有更具体的要求,您可以使用不同平均值的权重。

于 2017-03-20T14:52:50.873 回答