작심삼일

[LeetCode] 1200 | Minimum Absolute Difference | Python 본문

스터디/코테

[LeetCode] 1200 | Minimum Absolute Difference | Python

yun_s 2021. 12. 20. 09:54
728x90
반응형

문제 링크: https://leetcode.com/problems/minimum-absolute-difference/


문제

Given an array of distinct integers arr, find all pairs of elements with the minimum absolute difference of any two elements.

Return a list of pairs in ascending order(with respect to pairs), each pair [a, b] follows

  • a, b are from arr
  • a < b
  • b - a equals to the minimum absolute difference of any two elements in arr

조건

  • 2 <= arr.length <= 10^5
  • -10^6 <= arr[i] <= 10^6

내 풀이

주어지는 arr을 정렬한 뒤 제일 작은 연속한 수의 차를 구한다.

그 차에 해당하는 것들이 정답이다.


코드

class Solution:
    def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
        arrSorted = sorted(arr)
        ans = []
        
        mini = arrSorted[-1] - arrSorted[0]
        
        for n in range(len(arr)-1):
            mini = min(mini, arrSorted[n+1] - arrSorted[n])
            
        for n in range(len(arr)-1):
            if arrSorted[n+1] - arrSorted[n] == mini:
                ans.append([arrSorted[n], arrSorted[n+1]])
                
        return ans
728x90
반응형
Comments