【剑指offer】题40:数组中只出现一次的数字

来源:互联网 发布:小米note能用电信网络 编辑:程序博客网 时间:2024/05/16 07:30

void FindNumsAppearOnce(vector<int> data, int* num1, int *num2){    if (data.size()<2)    {        return;    }    int N(data[0]);    for (auto i = 1; i < data.size();++i)    {        N = N^data[i];    }    int k(0);    while (!((N>>k)&1))    {        k++;    }    int Ncopy(N);    for (auto i = 0; i < data.size();++i)    {        if ((data[i]>>k)&1)        {            N = N^data[i];        }    }    *num1 = N;    *num2 = N^Ncopy;}