题目
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
思路
:使用map遍历数组,统计各个数字出现的次数,然后使用set集合的不可重复性,判断是否有重复的value;
由于 Set 集合不允许有重复的元素,因此第二次向集合中添加 重复对象时不会添加成功
代码
public boolean uniqueOccurrences(int[] arr) {
Map<Integer,Integer> map=new HashMap<>();
Set<Integer> set=new HashSet<>();
for(int i=0;i<arr.length;i++){
if(map.containsKey(arr[i])){
map.put(arr[i],map.get(arr[i])+1);
}else{
map.put(arr[i],1);
}
}
for(int i : map.values()){
if(!set.add(i)){
return false;
}
}
return true;
}