python-leetcode-1200. 最小绝对差

mac2024-01-28  34

题目描述: 给你个整数数组 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)]
最新回复(0)