给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。 请你找出并返回那个只出现了一次的元素。
示例 1:
输入: nums = [2,2,3,2]
输出: 3
示例 2:
输入: nums = [0,1,0,1,0,1,100]
输出: 100
最简单的方法如下
var singleNumber = function(nums) {
var obj = {}
for(var i =0;i<nums.length;i++){
if(!obj[nums[i]]){
obj[nums[i]] = 1
}else{
obj[nums[i]]++
}
}
var keys = Object.keys(obj)
for(var j = 0;j<keys.length;j++){
if(obj[keys[j]] === 1){
return keys[j]
}
}
};
也可以考虑使用map
var singleNumber = function(nums) {
const map = new Map();
for (const key of nums) {
map.set(key, (map.get(key) || 0) + 1);
}
let res = 0;
for (const [key, value] of map.entries()) {
if (value === 1) {
res = key;
break;
}
}
return res;
};