题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
解题思路
用容器存次数。
class Solution {
public:
void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
if(data.size()>0){
map<int, int> res;
for(int i=0; i<data.size(); i++){
res[data[i]]++;
}
int cnt=0;
for(int i=0; i<data.size(); i++){
if(res[data[i]]==1){
if(cnt==0) *num1=data[i];
else *num2=data[i];
cnt++;
}
}
}
}
};
剑指offer上异或的做法看不太懂,先这样