例如:
假设有一个给定的点集{ P1, P2, P3...Pn }。
基本问题是找到一个点X,它在所有点 { P1, P2, P3... Pn } 上的距离之和最小。
即 |P1-X| + |P2-X| + .... + |Pn-X| = D,其中D是所有X中最小的。
更进一步,可能会有多个X值满足上述条件。即可能会有多个X可以产生相同的D值。因此,我们需要找到所有这样的X。
任何人都可以想到的一种基本方法是找到输入的中位数,然后暴力枚举坐标,这在这篇文章中有提到。
但是这种方法的问题是:如果中位数给出两个非常远的值,那么我们最终会尝试暴力枚举所有点,这将永远无法在给定时间内运行。
因此,是否有其他方法可以在点之间非常远的情况下获得结果(其中中位数给出的范围为10^9级别)?