1748. 唯一元素的和

题目

给你一个整数数组 nums 。数组中唯一元素是那些只出现 恰好一次 的元素。

请你返回 nums 中唯一元素的 和 。

来源:力扣(LeetCode)


解答

通过哈希表存储每个数字出现的次数,最后进行累加即可。

class Solution {
public:
    int sumOfUnique(vector<int>& nums) {
        unordered_map<int, int> mp;
        int ret = 0;

        for (auto i: nums) {
            mp[i]++;
        }

        for (auto i: mp) {
            if (i.second < 2) {
                ret += i.first;
            }
        }

        return ret;
    }
};

或一次遍历,当遍历到的数字出现的次数为1时,累加;为2时,减去;大于2时无需操作。

class Solution {
public:
    int sumOfUnique(vector<int>& nums) {
        unordered_map<int, int> mp;
        int ret = 0;

        for (auto i: nums) {
            mp[i]++;
            if (mp[i] == 1) {
                ret += i;
            } else if (mp[i] == 2) {
                ret -= i;
            }
        }

        return ret;
    }
};
我的力扣每日一题 文章被收录于专栏

就是力扣每日一题的记录,解法可能存在参考,但一定是我自己理解和口述的。 题解更注重理解,而不是为了缩短代码行数,为了精简而精简。

全部评论

相关推荐

有了offer来还愿:学校不行,专业不行,学历不行,怎么找?
点赞 评论 收藏
分享
已注销:bro不如吃顿疯狂星期四
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务