1207. Unique Number of Occurrences

1. Description

Given an array of integers arr, return true if the number of occurrences of each value in the array is unique or false otherwise.

2. Example

Example 1

Input: arr = [1,2,2,1,1,3]
Output: true
Explanation: The value 1 has 3 occurrences, 2 has 2 and 3 has 1. No two values have the same number of occurrences.

Example 2

Input: arr = [1,2]
Output: false

Example 3

Input: arr = [-3,0,1,-3,1,1,1,-3,10,0]
Output: true

3. Constraints

  • 1 <= arr.length <= 1000
  • -1000 <= arr[i] <= 1000

4. Solutions

Hash Table

n = arr.size()
Time complexity: O(n)
Space complexity: O(n)

class Solution {
public:
    bool uniqueOccurrences(const vector<int> &arr) {
        unordered_map<int, int> num_count;
        for (auto num : arr) {
            ++num_count[num];
        }

        unordered_map<int, int> occur_times_count;
        for (auto count : num_count) {
            if (occur_times_count[count.second] > 0) {
                return false;
            }

            ++occur_times_count[count.second];
        }

        return true;
    }
};
comments powered by Disqus