Leetcode 1200.最小绝对差
1 题目描述(Leetcode题目链接)
给你个整数数组 arr,其中每个元素都 不相同。
请你找到所有具有最小绝对差的元素对,并且按升序的顺序返回。
输入:arr = [4,2,1,3]
输出:[[1,2],[2,3],[3,4]]
输入:arr = [3,8,-10,23,19,-4,-14,27]
输出:[[-14,-10],[19,23],[23,27]]
2 题解
排序后查找相邻位置差最小的元素对。
class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
arr.sort()
res = [[arr[0], arr[1]]]
min_val = arr[1] - arr[0]
for i in range(2, len(arr)):
if min_val >= arr[i] - arr[i-1]:
if min_val > arr[i] - arr[i-1]:
res = []
min_val = arr[i] - arr[i-1]
res.append([arr[i-1], arr[i]])
return res