Hash Map

class Solution {
public:
    bool uniqueOccurrences(vector<int>& arr) {
        unordered_map<int, int> mp;
        unordered_map<int, int> mp2;

        for(int i = 0; i < arr.size(); i++) { 
            if(mp.find(arr[i]) != mp.end()) 
                mp[arr[i]]++;
            else
                mp[arr[i]] = 1;
        }

        for(auto it = mp.begin(); it != mp.end(); it++) {
            if(mp2.find(it->second) != mp2.end())
                mp2[it->second]++;
            else
                mp2[it->second] = 1;
        }

        for(auto it = mp2.begin(); it != mp2.end(); it++) {
            if(mp2[it->first] >= 2) 
                return false;
        }

        return true;
    }
};

Last updated

Was this helpful?