码迷,mamicode.com
首页 > 编程语言 > 详细

数组中只出现一次的数字

时间:2016-04-17 14:30:41      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

 

 

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;
    }
};

 

数组中只出现一次的数字

标签:

原文地址:http://www.cnblogs.com/daocaorenblog/p/5400925.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!