思路:异或,然后根据结果判断不同位分别异或(相同数字任何一位都相同)
    <<= 不能漏掉等号!!!
    ==的优先级大于&

    1. void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
    2. int _xor = 0;
    3. for(int i = 0;i < data.size();i++)_xor ^= data[i];
    4. int index = 1;
    5. while((index & _xor) == 0)index <<= 1;//别漏了=阿
    6. int n1 = 0, n2 = 0;
    7. for(int i = 0;i < data.size();i++){
    8. if((index & data[i]) == 0)n1 ^= data[i];
    9. else{
    10. n2 ^= data[i];
    11. }
    12. }
    13. *num1 = n1;
    14. *num2 = n2;
    15. }