Featured image of post LeetCode 75 - 1207. Unique Number of Occurrences

LeetCode 75 - 1207. Unique Number of Occurrences

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.

Example 1:

1
2
3
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:

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

Example 3:

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

Constraints:

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

Solutions

By using the map container to record the number of occurrences of each number, and then using the set container to record different occurrences, the size of the map and set can be compared to determine whether they are unique occurrences.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class Solution {
public:
    bool uniqueOccurrences(vector<int>& arr) {
        map<int, int> m;
        for (auto i : arr) {
            m[i]++;
        }
        set<int> s;
        for (auto [k, v] : m) {
            s.insert(v);
        }
        return m.size() == s.size();
    }
};