1748. 唯一元素的和

题目:给你一个整数数组 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/
posted @ 2021-02-26 11:15  USTC丶ZCC  阅读(169)  评论(0编辑  收藏  举报