【发布时间】:2016-09-30 12:31:22
【问题描述】:
给定 n 对数字,选择 k 对,使最小值和最大值之间的差值最小。请注意,1 对中的 2 个数字不能分开。示例(n=5, k=3):
INPUT OUTPUT (return the index of the pairs)
5 4 1 2 4
1 5
9 8
1 0
2 7
在这种情况下,选择 (5,4) (1,5) (1,0) 将给出 5 的差异 (最大值为 5,最小值为 0)时间>。我正在寻找一种有效的方法 (n log n) 这样做,因为输入会非常大,我不想遍历所有可能的情况。
谢谢。
注意:不需要任何代码。解决方案的解释就足够了。
【问题讨论】:
-
您想打印解决方案中所选对的索引还是只打印差异??
-
如果 k = 1,则输出为索引 3,差值为 1??
-
@User_Targaryen 是的。如果有多个解决方案,任何解决方案都可以。
-
能否提供问题的根源?
-
@Tempux 是全国高中生编程锦标赛的一个问题。
标签: algorithm combinations difference