数组中只出现一次的数字

题目链接

Solution

只有两个数字出现了1次,其他数字都出现两次。
所以定义一个map,记录每个数字出现的次数。
最后扫一遍数组,找出只出现一次的数字即可。

Code

class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        ap<int,int>mp;
        bool fir = 0;
        for (int i = 0; i < (int)data.size(); ++i) mp[data[i]] ++;
        for (int i = 0; i < (int)data.size(); ++i) 
            if (mp[data[i]] == 1) {
                if (!fir) *num1 = data[i], fir = 1;
                else *num2 = data[i];
            }
    }
};