Solution: Unique Number of Occurrences
Let's solve the Unique Number of Occurrences problem using the Hash Maps pattern.
We'll cover the following
Statement
Given an array of integers nums
, return TRUE if each value in the array has a unique number of occurrences; otherwise, return FALSE.
Constraints:
<= nums.length
<=<= nums[i]
<=
Solution
The algorithm checks if there is a unique number of occurrences of each element by using a hash map and a hash set. First, for each element of the nums
array, put the element in the hash map if it does not already exist in the hash map; otherwise, increment its count. Second, put all the elements' frequencies (counts) in a hash set. Finally, the algorithm will return TRUE if the count of the hash map and the hash set is the same and FALSE otherwise.
The algorithm to solve this problem is as follows:
Initialize a hash map and a hash set.
Iterate over the
nums
array, and for each element:If the element is not already in the hash map, put the element in the hash map as a key and
as the value. Otherwise, if the element already exists in the hash map, increment that element's value by
.
After the loop terminates, iterate over the hash map and store all values of its elements to the hash set.
Because the hash set does not allow duplicates and stores only unique values, if the lengths of the hash map and the hash set are the same, it means that there is no duplicate frequency of an element in the hash map. In this case, return TRUE; otherwise, return FALSE.
Look at the following illustration to get a better understanding of the solution:
Level up your interview prep. Join Educative to access 80+ hands-on prep courses.