剑指offer 数组中只出现一次的数字

来源:互联网 发布:法国大革命 评价 知乎 编辑:程序博客网 时间:2024/06/05 00:08

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。


class Solution {public:       void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {if(data.size()<2)            return;        int myxor=0;        int flag=1;        for(int i=0;i<data.size();i++){            myxor^=data[i];        }        while((flag&myxor)==0 ) flag<<=1;        *num1=myxor;        *num2=myxor;        for(int i=0;i<data.size();i++){            if((flag&data[i])==0) *num1^=data[i];            else *num2^=data[i];        }            }};


0 0