본문 바로가기

Algorithm/Implementation

(C++) - LeetCode (easy) 1200. Minimum Absolute Difference

반응형

https://leetcode.com/problems/minimum-absolute-difference/

 

Minimum Absolute Difference - LeetCode

Can you solve this real interview question? 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 t

leetcode.com

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. arr를 오름차순으로 정렬해줍니다.2. 최소 차이 minDiff를 arr의 원소를 순회하며 찾아 저장합니다. 인접원소의 차이의 최솟값을 찾는 것입니다.3. 정답 변수 ans를 선언해줍니다.

📔 풀이과정

arr의 원소를 순회하며 인접 원소의 차가 minDiff와 같다면 ans에 해당 원소의 짝을 push_back해줍니다.

📔 정답 출력 | 반환

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector<vector<int>> minimumAbsDifference(vector<int>& arr) {
        sort(arr.begin(), arr.end());
        vector<vector<int>> ans;
        int minDiff = 0x3f3f3f3f;
        for(int i = 0; i < arr.size() - 1; i++) {
            minDiff = min(minDiff, arr[i+1] - arr[i]);
        }
        for(int i = 0; i < arr.size() - 1; i++) {
            if(arr[i+1] - arr[i] == minDiff) {
                ans.push_back({arr[i], arr[i+1]});
            }
        }
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.