题目:给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。请你返回 nums 中唯一元素的 和 。
示例 1:
输入:nums = [1,2,3,2]
输出:4
解释:唯一元素为 [1,3] ,和为 4 。
示例 2:
输入:nums = [1,1,1,1,1]
输出:0
解释:没有唯一元素,和为 0 。
1.原创
class Solution {
public:
int sumOfUnique(vector<int>& nums) {
if (nums.size()==1)
return nums[0];
sort(nums.begin(),nums.end());
int res = 0;
for(int i=0;i<nums.size()-1;++i){
if(nums[i+1]==nums[i]){
while(nums[i+1]==nums[i])
i+=1;
}
else{
res+=nums[i];
}
}
if (nums[nums.size()-1]!=nums[nums.size()-2]) //这里出现了index=nums.size()-2,所以需要确定nums的大小要>=2
return res+nums[nums.size()-1];
else
return res;
}
};
2.题解
int sumOfUnique(int* nums, int numsSize){
int sum = 0; // 求和
int freq[101] = {0}; // 记录数组中的元素出现的频次
/* 遍历整个数组,获取数组中每个元素出现的频次 */
for (int i = 0; i < numsSize; ++i) {
freq[nums[i]]++;
}
/* 遍历整个数组,对数组中的元素出现频次为 1 的元素求和 */
for (int i = 0; i < numsSize; ++i) {
if (freq[nums[i]] == 1) {
sum += nums[i];
}
}
return sum;
}
作者:Dine
链接:https://leetcode-cn.com/problems/sum-of-unique-elements/solution/1748-wei-yi-yuan-su-de-he-by-dine-gfc6/