数组中只出现一次的数字

class Solution {
public:
    int last1(int res)
        {
        int len=1;
        while(res!=0&&res>>1&1!=1)
            {
            len++;
            res=res>>1;
        }
        return len;
    }
    bool islast1(int n,int len)
        {
          if(n>>len&1==1)
              return true;
        else return false;
    }
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        if(data.size()<2)
            return ;
        int res=0;
        *num1=0;
        *num2=0;
        for(int i=0;i<data.size();i++)
           res^=data[i];
        int len=last1(res);
        for(int i=0;i<data.size();i++)
            {
            if(islast1(data[i],len))
                (*num1)^=data[i];
            else (*num2)^=data[i];
        }
        return;
    }
};
原文地址:https://www.cnblogs.com/daocaorenblog/p/5400925.html