思路:异或,然后根据结果判断不同位分别异或(相同数字任何一位都相同)
<<= 不能漏掉等号!!!
==的优先级大于&
void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {int _xor = 0;for(int i = 0;i < data.size();i++)_xor ^= data[i];int index = 1;while((index & _xor) == 0)index <<= 1;//别漏了=阿int n1 = 0, n2 = 0;for(int i = 0;i < data.size();i++){if((index & data[i]) == 0)n1 ^= data[i];else{n2 ^= data[i];}}*num1 = n1;*num2 = n2;}
