题目:https://leetcode-cn.com/problems/unique-number-of-occurrences/
代码:
class Solution {
public boolean uniqueOccurrences(int[] arr) {
//使用map统计每个数字出现的次数
Map<Integer, Integer> map = new HashMap<>();
for (Integer i : arr) {
if (map.containsKey(i)) {
map.put(i, map.get(i) + 1);
}else{
map.put(i, 0);
}
}
//使用set对map的value去重,判断各个数字出现次数是否唯一
Set<Integer> set = new HashSet<>(map.values());
return map.size() == set.size();
}
}
通过map统计每个数字出现的次数,key为数字,value为次数。然后通过set对value去重,判断去重后的set的size和map的size是否一样即可知道value值是否有重复的,继而得到答案。