Leetcode/LeetCode75

[HashMap/Set][Easy] 1207. Unique Number of Occurrences

자전거통학 2023. 12. 9. 01:07

https://leetcode.com/problems/unique-number-of-occurrences/description

 

Unique Number of Occurrences - LeetCode

Can you solve this real interview question? Unique Number of Occurrences - Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise.   Example 1: Input: arr = [1,2,2,1,1,3] Output: tr

leetcode.com

 

Q. 주어진 정수배열 arr에서 각 원소의 출현 횟수가 유일한지 여부를 반환하라. 

 

Solution. 

 1. Hash관련 알고리즘 풀이에서 frequency buffer를 써야 하는 상황은 정말 많이 나온다. 그 entry point에 해당하는 문제라 볼수 있겠다. 

 2. 대체적으로 풀이를 구상해봤는데, O(N)을 만족한다면, 대체로 충분한 답이다. 다만 원소가 정렬되어 있다면 binary search를 해서 O(logN)으로 접근할 수 있다는 점을 추가로 염두 해 두자.

 

bool uniqueOccurrences(vector<int>& arr)
{
    unordered_map<int, int> freqMap;
    for (int k = 0; k < arr.size(); ++k)
        freqMap[arr[k]]++;

    unordered_set<int> check;
    for (unordered_map<int, int>::iterator it = freqMap.begin(); it != freqMap.end(); ++it)
    {
        if (check.find(it->second) == check.end())
            check.insert(it->second);
        else
            return false;
    }
    return true;
}