class Solution {
public:
void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
if(data.size() < 2){
*num1 = 0;
*num2 = 0;
return;
}
int num = data[0];
for(int i = 1; i < data.size(); i++){
num = num ^ data[i];
}
int k = 1;
while((num / k) % 2 != 1){
k = k << 1;
}
*num1 = num;
for(int i = 0; i < data.size(); i++){
if((data[i] / k) % 2 != 1)
*num1 = *num1 ^ data[i];
}
*num2 = *num1 ^ num;
}
};