输入是一个实数序列 x1, x2, ..., x2n。我们想将这些数字配对成 n 对。对于第 i 个对 (i = 1, 2, ..., n),让 Si 表示该对中的数字之和。(例如,如果将 x(2i−1) 和 x2i 作为第 i 对配对,则 Si = x(2i−1) + x2i)。我们希望将这些数字配对,以使 Maxi[Si] 最小化。设计一个贪心算法来解决这个问题。
这就是问题所在; 我的解决方案是简单地对数字进行排序并配对倒数第一的元素和加一/减一索引并重复。该算法尝试对每一对进行优化,从而使其变得贪婪。我只是想知道是否有一个线性时间算法可以做到这一点?
PS:这不是作业,但我知道这看起来很像。