Unique Number of Occurrences
Problem 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:
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
Constraints:
1 <= arr.length <= 1000-1000 <= arr[i] <= 1000
Solution (Go)
func uniqueOccurrences(arr []int) bool {
m := make(map[int]int)
for _, i := range arr {
if _, ok := m[i]; ok {
m[i] = m[i] + 1
} else {
m[i] = 1
}
}
s := make(map[int]bool)
for _, v := range m {
s[v] = true
}
return len(m) == len(s)
}