难度简单
给你一个整数数组 arr
,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true
;否则返回 false
。
思路:
采用两个哈希map,一个哈希set,
一个map记录每个数字的数量,另一个map记录每个数字的数量出现的次数
set用于统计数字之后消除大量重复的数字,简化程序
bool uniqueOccurrences(vector<int>& arr) {
unordered_map<int,int> M;
unordered_map<int,int> ans;
for(auto index:arr){
M[index]++;
}
unordered_set<int> data;
data.insert(arr.begin(),arr.end());
for(auto index:data){
if(ans[M[index]]) return false;
ans[M[index]]++;
}
return true;
}