找到最接近数组中所有数字的数字

vic*_*cky 4 arrays algorithm optimization numbers

这个问题基本上是算法优化问题.

我们有一个包含n个元素的列表.因为{n1,n2,n3...nk} 这个列表是排序的,我们必须找出数字ni

  1. n1<=ni<=nk
  2. ni每个数字的距离之和最小.

可能存在总数,(nk-n1+1)但我们的目标是找出ni最接近所有其他数字的数字.

蛮力方法可以迭代n1到nk并计算所有列表数的距离之和.通过这种方式,我们可以很容易地找出最接近列表中所有其他数字的数字.

但是这种方法的问题是,它在时间复杂度方面并不好.这种方法的时间复杂性是O(n^2).

我认为可以采用更好的方法来解决这个问题,而且时间复杂度更低.

任何方法将不胜感激.

Kla*_*äck 6

如果你的意思是"距离",distance(a,b) = abs(a-b)那么你只需要找到中位数.

在排序列表中查找中值是O(1).