一、题目讲述
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
二、思路讲解
总的来说,今天的题目很简单,分两步,记录,和判断就可以了。
通过两个json对象来实现,一个json对象记录重复的数。
一个json对象判断是否重复。
三、核心代码
/** 独一无二的出现次数
* @param {number[]} arr
* @return {boolean}
*/
var uniqueOccurrences = function(arr) {
//josn1 用来存储arr中相同的值
var json1 = {};
//遍历arr
for(var i = 0 ; i<arr.length ; i++){
//判断json1中是否有该键了,如果有值加一,没有一arr中该元素为键,添加进json1中
if(json1[arr[i]]){
json1[arr[i]] = json1[arr[i]]+1;
}else{
json1[arr[i]] = 1;
}
}
//json2用以判断是否是数的数量是否是独一无二的
var json2 = {};
//遍历json1hash表
for(var key in json1){
//判断json1 中数的重复次数为键值判断,如果没有就添加,有代表重复了,returnfalse
if(json2[json1[key]]){
return false;
}else{
json2[json1[key]] = 1;
}
}
return true;
};