题目描述
给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。
请你返回 nums 中唯一元素的 和 。
示例 1:
输入:nums = [1,2,3,2]
输出:4
解释:唯一元素为 [1,3] ,和为 4 。
示例 2:
输入:nums = [1,1,1,1,1]
输出:0
解释:没有唯一元素,和为 0 。
示例 3 :
输入:nums = [1,2,3,4,5]
输出:15
解释:唯一元素为 [1,2,3,4,5] ,和为 15 。
算法分析
定义一个哈希表,统计每种数字出现的次数,如果这个数字的出现次数为1,那么将这个数字加到sum当中,最后返回sum
完整代码
class Solution {
public:
int sumOfUnique(vector<int>& nums) {
//哈希表:统计每种数字出现的次数
unordered_map<int,int>m;
for(auto i:nums)
m[i]++; //统计每个元素出现的次数
int sum=0;
for(auto x:m)
{
if(x.second==1)
{
sum+=(x.first);
}
}
return sum;
}
};