【发布时间】:2018-11-07 22:21:08
【问题描述】:
给定 n 个元素的排序序列。从长度为 k 的子序列的所有对差中找出所有最小值中的最大值。
Here 1<=n<=10^5
and 2<=k<=n
For eg: [2, 3, 5, 9] and k = 3
there are 4 subsequences:
[2, 3, 5] - min diff of all pairs = 1
[2, 3, 9] - min diff of all pairs = 1
[3, 5, 9] - min diff of all pairs = 2
[2, 5, 9] - min diff of all pairs = 3
所以答案是所有最小差异的最大值 = 3
天真的方法是找到所有 k 个长度的子序列,然后在每个子序列中找到最小值,然后在所有子序列中找到最大值,但由于限制,这将超时。
除此之外,我的想法是找到最佳距离的序列,以便最小值变为最大值。
有人能给出一个最佳和更好的解决方案吗?
【问题讨论】:
-
你见过这个吗?不一样,但非常相似:geeksforgeeks.org/minimum-difference-max-min-k-size-subsets
-
类似,但在这里我们必须找到所有子集对的 min b/w。
标签: arrays algorithm subsequence