LeetCode #1200. Minimum Absolute Difference

题目

1200. Minimum Absolute Difference


解题方法

先对arr排序,再遍历arr,将其中的数存入字典作为键,并且计算最小差值mindif。最后遍历字典中的键key,如果key+mindif也在字典中,则加入到返回值rat。
时间复杂度:O(nlogn)
空间复杂度:O(n)


代码

class Solution:
    def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
        arr.sort()
        dic = {}
        mindif = arr[1] - arr[0]
        for i in range(len(arr)-1):
            dic[arr[i]] = arr[i]
            mindif = min(mindif, arr[i+1] - arr[i])
        else:
            dic[arr[i+1]] = arr[i+1]
        
        rat = []
        for key in dic.keys():
            if key + mindif in dic:
                rat.append([key, key+mindif])
        return rat
posted @ 2020-11-24 15:13  老鼠司令  阅读(95)  评论(0)    收藏  举报