来源:Google 面试题
编写一段代码,确保输入中相同的元素在输出中尽可能地扩散?
基本上,我们需要以这样的方式放置相同的元素,使得总体扩散最大化。
例如:
Input: {1,1,2,3,2,3}
Possible Output: {1,2,3,1,2,3}
Total dispersion = Difference between position of 1's + 2's + 3's = 4-1 + 5-2 + 6-3 = 9 .
我不确定是否有针对这个问题的最优多项式时间算法。除此之外,没有提供任何其他细节。
我的想法是计算输入中每个元素的频率,然后将它们按顺序排列在输出中,每次一个不同的元素,直到所有频率都用完为止。
我不确定我的方法是否可行。
有什么其他方法/想法吗?