我有一个我似乎无法弄清楚的面试问题.给定大小为N的阵列,找到大小为k的子集,使得子集中的元素彼此相距最远.换句话说,最大化元素之间的最小成对距离.
Example:
Array = [1,2,6,10]
k = 3
answer = [1,6,10]
Run Code Online (Sandbox Code Playgroud)
强力方式需要找到大小为k的所有子集,这些子集在运行时是指数的.
我的一个想法是从数组中均匀分布值.我的意思是
这是基于元素应尽可能均匀分布的直觉.我不知道如何证明它有效/无效.如果有人知道如何或有更好的算法,请分享.谢谢!