題目描述:
給你個整數數組 arr,其中每個元素都 不相同。
請你找到所有具有最小絕對差的元素對,並且按升序的順序返回。
示例 1:
輸入:arr = [4,2,1,3]
輸出:[[1,2],[2,3],[3,4]]
示例 2:
輸入:arr = [1,3,6,10,15]
輸出:[[1,3]]
解法一:
class Solution(object):
def minimumAbsDifference(self, arr):
arr = sorted(arr)
delta = [arr[i+1]-arr[i] for i in range(len(arr)-1)]
min_delta = min(delta)
res = [[arr[j], arr[j+1]] for j in range(len(delta)) if delta[j] == min_delta]
return res
解法二:
class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
s = set(arr)
res = []
d = 0
while not res:
d += 1
res = [e for e in s if e + d in s]
return [[e, e+d] for e in sorted(res)]