LeetCode 1748 唯一元素的和[Map] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1748 唯一元素的和[Map] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路:
很容易想到两种思路,第一种用Map记录个数,然后遍历Map把数量为1的元素相加,代码如下:

class Solution 
public:
    int sumOfUnique(vector<int>& nums) 
        unordered_map<int, int> mp;
        for(int& num : nums) 
            mp[num] ++;
        
        int ans = 0;
        for(auto&[a, b] : mp) 
            if(b == 1) 
                ans += a;
            
        
        return ans;
    
;

另一种思路是先加上,然后Map也记录,一旦重复就减去,当然要注意一旦出现三个及以上的情况就不要继续减了,代码如下:

class Solution 
public:
    int sumOfUnique(vector<int>& nums) 
        unordered_map<int, int> mp;
        int ans = 0;
        for(int& num : nums) 
            if(mp[num] == 0) 
                ans += num;
                mp[num] = 1;
             else if(mp[num] == 1)
                ans -= num;
                mp[num] = 2;
            
            
        
        
        return ans;
    
;

以上是关于LeetCode 1748 唯一元素的和[Map] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 1219. 黄金矿工 / 1748. 唯一元素的和 / 1405. 最长快乐字符串

1748. 唯一元素的和

LeetCode 380 O时间插入删除和获取随机元素[Map 数组] HERODING的LeetCode之路

LeetCode 508 出现次数最多的子树元素和[dfs] HERODING的LeetCode之路

637. Average of Levels in Binary Tree - LeetCode

leetcode 1572. 矩阵对角线元素的和