让我们看一下元素的一些潜在排序:
a[i] < b[j] < c[k]
然后我们可以看到以下主张成立:
Target = |a[i] - b[j]| + |b[j] - c[k]| + |c[k] - a[i]| = b[j] - a[i] + c[k] - b[j] + c[k] - a[i] = 2 * (c[k] - a[i])
因此,对于任何可能的排序,这都是使两个不同阵列中的两个元素之间的差异最小化。因此,只需对每个可能的组合(
a和
b,
b和
c,
c和
a)进行最小化即可,如您所参考的问题所示(可以在每对线性时间上完成)。
一旦找到对的最小化,从第三个数组中找到匹配的元素应该很容易-只需遍历该数组并检查每个元素即可。



