1748. 唯一元素的和(2022-2-6)
给你一个整数数组 nums
。数组中唯一元素是那些只出现 恰好一次 的元素。
请你返回 nums
中唯一元素的 和 。
示例 1:
解题思路
从前边找和从后边找的索引相同,就说明这是个唯一元素。
这道题和884. 两句话中的不常见单词 非常相似,就多了一个累加的操作,可以参考一下我写的Blog
另外此题的正经解法其实是***维护一个保存着数字及其出现次数的哈希表***,最后遍历哈希表进行求值
var sumOfUnique = function(nums) {
return nums.reduce(
(res,v)=>nums.indexOf(v) == nums.lastIndexOf(v)? res + v : res
,0)
};
在浏览大佬的题解时,发现了一个从未设想的思路:
尝试一下实现:
var sumOfUnique = function(nums) {
let len = nums.length
let res = 0,i,j
nums = nums.sort()
for(i = 0; i < len; i = j){
let win = 1
for(j = i + 1; nums[i] == nums[j]; j++){
win++
}
if(win == 1) res += nums[i]
}
};