Medium
You are given an integer array nums.
Return an integer denoting the first element (scanning from left to right) in nums whose frequency is unique. That is, no other integer appears the same number of times in nums. If there is no such element, return -1.
Example 1:
Input: nums = [20,10,30,30]
Output: 30
Explanation:
Example 2:
Input: nums = [20,20,10,30,30,30]
Output: 20
Explanation:
Example 3:
Input: nums = [10,10,20,20]
Output: -1
Explanation:
Constraints:
1 <= nums.length <= 1051 <= nums[i] <= 105import java.util.HashMap;
import java.util.Map;
public class Solution {
public int firstUniqueFreq(int[] nums) {
Map<Integer, Integer> c1 = new HashMap<>();
for (int a : nums) {
c1.put(a, c1.getOrDefault(a, 0) + 1);
}
Map<Integer, Integer> c2 = new HashMap<>();
for (int f : c1.values()) {
c2.put(f, c2.getOrDefault(f, 0) + 1);
}
for (int a : nums) {
if (c2.get(c1.get(a)) == 1) {
return a;
}
}
return -1;
}
}