题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。
请写程序找出这两个只出现一次的数字。
解法一:基于map的统计方法
class Solution {
public:
void FindNumsAppearOnce(vector<int> data, int* num1, int *num2) {
map<int, int> mp;
for (auto n : data)
mp[n]++;
map<int, int>::iterator it;
int flag = 1;
for (it = mp.begin(); it != mp.end(); it++)
{
if ((it->second == 1) && (flag == 1))
{
*num1 = it->first;
flag++;
}
else if ((it->second == 1) && (flag == 2))
{
*num2 = it->first;
}
}
}
};