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
Example 1:
Input: arr = [4,2,1,3]
Output: [[1,2],[2,3],[3,4]]
Explanation: The minimum absolute difference is 1. List all pairs with difference equal to 1 in ascending order.
Example 2:
Input: arr = [1,3,6,10,15]
Output: [[1,3]]
Example 3:
Input: arr = [3,8,-10,23,19,-4,-14,27]
Output: [[-14,-10],[19,23],[23,27]]
Constraints:
- 2 <= arr.length <= 105
- -106 <= arr[i] <= 106
#https://leetcode.com/problems/minimum-absolute-difference/
'''
1. 아이디어 :
정렬 후 인접한 두 수의 차이를 구하고 그 중 최소값을 구한다.
2. 시간복잡도 :
O(n*logn) + O(n) + O(n)
3. 자료구조 :
리스트
'''
class Solution:
def minimumAbsDifference(self, arr: List[int]) -> List[List[int]]:
arr.sort()
cmin=float('inf')
for i in range(len(arr)-1):
cmin=min(abs(arr[i+1]-arr[i]),cmin)
ans=[]
for i in range(len(arr)-1):
if abs(arr[i+1]-arr[i])==cmin:
ans.append([arr[i],arr[i+1]])
return ans
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
697. Degree of an Array (0) | 2023.03.23 |
---|---|
290. Word Pattern (0) | 2023.03.23 |
733. Flood Fill (0) | 2023.03.23 |
520. Detect Capital (0) | 2023.03.23 |
207. Course Schedule (0) | 2023.03.19 |