# 独一无二的出现次数(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

# 算法

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