1. 题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
2. 思路分析
我觉得这道题最方便快捷的方式就是用哈希记录每个数字出现的次数,然后找到hash值为1的即可。
3. 解答——cpp
class Solution {
public:
void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
if (data.size() == 0)
return;
map<int, int> jishu;
for(int i = 0; i < data.size(); i++) {
jishu[data[i]]++;
}
int flag = 0;
for(int i = 0; i < data.size(); i++) {
if(jishu[data[i]] == 1) {
if(flag == 0) {
*num1 = data[i];
flag = 1;
}
else {
*num2 = data[i];
break;
}
}
}
}
};