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;
}
};