这里的问题是找到所有整数点的集合,它给出从给定点集合的所有曼哈顿距离的最小总和!
例如:
让我们有一组给定的点 { P1, P2, P3...Pn }
基本问题是找到一个点,比如说 X,它在从点 { P1,P2,P3...Pn} 的所有距离上具有最小总和。
即|P1-X| + |P2-X| + .... + |Pn-X| = D,其中 D 将是所有 X 中的最小值。
更进一步,可以有多个 X 值满足上述条件。即,可能有多个 X 会给出相同的值 D。所以,我们需要找到所有这样的 X。
任何人都可以想到的一种基本方法是找到输入的中位数,然后暴力破解本文中提到的坐标
但是这种方法的问题是:如果中位数给出了两个相差很大的值,那么我们最终会暴力破解所有在给定时间内永远不会运行的点。
那么,即使这些点相距很远(其中中位数给出的范围约为 10 ^ 9),是否还有其他方法可以给出结果。