查看原题
解题思路(排序)
将数组排序,将数组不和前一项和后一项相等的元素就是唯一元素。
代码
/**
* @param {number[]} nums
* @return {number}
*/
var sumOfUnique = function(nums) {
nums.sort((a,b)=>a-b);
let sum = 0;
let i = 0;
const length = nums.length;
for(i = 0; i < length; i++) {
if(nums[i] !== nums[i+1] && nums[i] !== nums[i-1]){
sum += nums[i];
}
}
return sum;
};
解题思路(哈希表)
统计每一个数字出现的次数,找出出现次数为一的元素求和。
代码
/**
* @param {number[]} nums
* @return {number}
*/
var sumOfUnique = function(nums) {
const map = new Map();
let sum = 0;
nums.forEach(num=>{
if(map.has(num)) {
map.set(num, map.get(num) + 1)
}
else {
map.set(num,1);
}
})
for (const [key,value] of map) {
if(value == 1) {
sum += Number(key);
}
}
return sum;
};