# 独一无二的出现次数(1207)
# 题目
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
# 示例
输入:arr = [1,2,2,1,1,3]
输出:true
输入:arr = [1,2]
输出:false
输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]
输出:true
# 提示
1 <= arr.length <= 1000
-1000 <= arr[i] <= 1000
1
2
2
# 算法
Map + Set:先统计每个数字出现的次数,再在Set中判断是否有重复出现的次数
const uniqueOccurrences = function(arr) {
let map = new Map();
arr.forEach((item) => {
map.has(item) ? map.set(item, map.get(item) + 1) : map.set(item, 1);
});
let set = new Set();
for (const item of map) {
if (set.has(item[1])) {
return false;
} else {
set.add(item[1]);
}
}
return true;
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15