最小化阵列的无序系数(差异的绝对值之和)

时间:2017-11-01 18:36:34

标签: algorithm data-structures tree dynamic-programming absolute-value

我遇到了波兰奥林匹克运动会的问题: 每个数组a1,a2,a3 ... a4都有它的无序系数K,它等于|a[1]-a[2]| + |a[2]- a[3]| + |a[3]-a[4]| ... |a[n-1] -a[n]|。对于每个元素,我们应该计算通过用数组的任何其他元素切换位置可以获得的最小K. 示例:给定数组7 4 5 2 5。 这个数组的初始无序系数是  10 = |7-4|+|4-5|+|5-2|+|2-5|第1个元素的最小紊乱系数是在用第4个元素交换后获得的|2-4|+|4-5|+|5-7|+|7-5| = 7。我们需要为数组的所有元素计算这个。复杂性应该是O(nlogN)。

1 个答案:

答案 0 :(得分:0)

只需对数组进行排序,并为此有序数组计算无效系数。它是数组的MDC。

工作原理。 你需要将差异最小的元素放在一起。排序将给出这个结果。

同样试图证明这个理论:)明天会更新。