lintcode-落单的数II-83

来源:互联网 发布:算法竞赛入门经典2 pdf 编辑:程序博客网 时间:2024/04/29 01:55

给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。

样例

给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4

挑战

一次遍历,常数级的额外空间复杂度

#define Bit 32class Solution {public:    int singleNumberII(vector<int> &A) {        int count,ret=0;        for(int i=0;i<Bit;++i){             count=0;            for(auto e:A){                if(e&(1<<i))  //检验e的二进制形式的第i位是否为1                     ++count;             }                    if(count%3)                       ret|=1<<i;        }        return ret;    }};


0 1
原创粉丝点击