题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。
链接
代码
class Solution {
public:
void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
if(data.size() < 2){
return;
}
int cut = 0;
for(int i = 0; i < data.size(); i++){
cut ^= data[i];
}
int index = 0;
while(!(cut & 1)){
cut = cut >> 1;
index++;
}
for(int i = 0; i < data.size(); i++){
if(data[i] >> index & 1){
*num1 ^= data[i];
}
else{
*num2 ^= data[i];
}
}
}
};