python-leetcode-1200. 最小絕對差

題目描述:
給你個整數數組 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)]
發佈了67 篇原創文章 · 獲贊 6 · 訪問量 9947
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章