[leetcode] Single Number III

来源:互联网 发布:世界银行数据官网 编辑:程序博客网 时间:2024/05/16 07:11

同Single Number,异或后按照得到的结果中bit位为1的将数组分为两组,结果必然各存在于这两组中,分别异或得到结果。代码如下:

vector<int> singleNumber(vector<int>& nums) {        int tmp = 0;        vector<int> result(2, 0);        for(auto num : nums) {            tmp ^= num;        }        int i = 0;        while(!(tmp >> i & 1)) ++i;        for(auto num : nums) {            if(num >> i & 1)                result[0] ^= num;        }        result[1] = result[0] ^ tmp;        return result;    }


0 0