给定一个未排序的整数数组,并且无需对数组中的数字做任何假设: 是否有可能找到两个在O(n)时间上差异最小的数字?
编辑: 两个数字a,b之差定义为abs(a-b)
abs(a-b)
在列表中找到最小和最大元素。最小最大差异将最小。
如果您正在寻找非负差异,那么这当然至少与检查数组是否具有两个相同的元素一样困难。这称为元素唯一性问题,无需任何其他假设(例如限制整数的大小,允许进行除比较以外的其他运算)需要> = n log n时间。这是找到最接近的一对点的一维情况。