我环顾四周,在这里发现了一些类似的问题,但没有一个专门解决这个问题。
我需要做的是,给定一组正整数(假设该组具有偶数大小),将值分组,使每对的平均值尽可能接近其他值 - 也就是说,这组对的平均值具有最小的可能范围。
示例:如果我有
[1, 3, 3, 5]
我会得到两组:
[1, 5] [3, 3]
所以它们的平均值尽可能接近——在这种情况下,相同。
这就像将最高值与最低值配对一样简单,然后将第二高与第二低配对,依此类推,还是有更好的方法?
对数组进行排序,然后取第一个和最后一个元素,第二个和倒数第二个元素等等......
这取决于你需要什么。对于您的问题来说,有许多对,它们的平均数和总平均数之间的平均差值是更好的,还是您希望尽可能多的对数接近总平均数?
在第一种情况下,您可以使用您的方法,其次,我会找到最接近平均值的对,然后是下一个,等等...
例如,对于这个输入:[1, 1, 1, 25, 26, 100]
pair[25, 26]
的平均值与总平均值最接近。
如果您有更具体的要求,您可以使用不同平均值的权重。