1207. Unique Number of Occurrences
Given an array of integers arr, write a function that returns true if and only if the number of occurrences of each value in the array is unique.
1
2
3
4
5
| 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.
|
1
2
3
4
| Example 2:
Input: arr = [1,2]
Output: false
|
1
2
3
4
| 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#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| class Solution {
public boolean uniqueOccurrences(int[] arr) {
int[] freq = new int[2001];
for (int i = 0; i < arr.length; i++) {
freq[arr[i] + 1000]++;
}
Set<Integer> set = new HashSet<>();
for (int i = 0; i < freq.length; i++) {
if (freq[i] > 0) {
boolean prev = set.add(freq[i]);
if (!prev) {
return false;
}
} }
return true;
}
}
|