【发布时间】:2013-02-26 13:23:34
【问题描述】:
这个问题基本上是一个算法优化问题。
我们有一个包含 n 个元素的列表。例如{n1,n2,n3...nk}
这个列表是排序的,我们必须找出数字 ni 是
n1<=ni<=nk-
ni与每个数字的距离之和最小。
可能有(nk-n1+1) 可能的总数,但我们的目标是找出ni 的数字,它是
最接近所有其他数字。
蛮力方法可以通过n1 迭代到 nk 并计算距离的总和
从所有列表编号。通过这种方式,我们可以轻松找出最接近列表中所有其他数字的数字。
但是这种方法的问题是,它在时间复杂度方面并不好。这种方法的时间复杂度是O(n^2)。
我认为可能有更好的方法可以用更少的时间解决这个问题 复杂。
任何方法都会受到赞赏。
【问题讨论】:
-
你对“距离”的定义是什么?
-
用二分法搜索怎么样,因为你提到列表是排序的?
-
是距离(a,b)=abs(a-b)
标签: arrays algorithm optimization numbers