题目让求min1≤j<i|Ai−Aj|。我们将所有数放到数轴上,题目等价于让求和Ai靠的最近的元素A[j],并且满足j < i。我们发现如果排好序,那么对原序列的最后一个数来讲,是可以无视“j < i”这个条件。
逆序遍历原序列的每一个数Ai,找到它在排好序的序列中的位置Bj,比较与它相近的两个数Bj - 1和Bj + 1。之后再删去Bj。删除操作如果用数组储存,时间复杂度为O(n^2);用链表是O(1)。
题目让求min1≤j<i|Ai−Aj|。我们将所有数放到数轴上,题目等价于让求和Ai靠的最近的元素A[j],并且满足j < i。我们发现如果排好序,那么对原序列的最后一个数来讲,是可以无视“j < i”这个条件。
逆序遍历原序列的每一个数Ai,找到它在排好序的序列中的位置Bj,比较与它相近的两个数Bj - 1和Bj + 1。之后再删去Bj。删除操作如果用数组储存,时间复杂度为O(n^2);用链表是O(1)。