唯一元素的和

小超芳 / 2023-07-28 / 原文

给你一个整数数组 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 。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sum-of-unique-elements
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

频率计算(遍历两次)

class Solution {
    public int sumOfUnique(int[] nums) {
        //直接使用频率大法,数字最大100而已
        int[] number = new int[101];
        for(int num : nums){
            number[num]++;
        }
        int sum = 0;
        for(int i=0;i< number.length;i++){
            if(number[i]==1)sum+=i;
        }
        return sum;
    }
}

频率一次遍历

class Solution {
    public int sumOfUnique(int[] nums) {
        //直接使用频率大法,数字最大100而已
        int[] number = new int[101];
        int sum = 0;
        //第一次遇到加入到sum中,第二次就减去,之后重复不计入sum中
        for(int num : nums){
            if(number[num]==0){
                number[num]++;
                sum+=num;
            }else if(number[num]<2){
                sum-=num;
                number[num]++;
            }
        }
        return sum;
    }
}