题目:

C语言 | Leetcode C语言题解之第136题只出现一次的数字插图

题解

class Solution {
public:
    vector singleNumbers(vector& nums) {
        int eor = 0;
        for (int num:nums)
            eor ^= num;
        int rightOne = eor & (~eor + 1); // 提取出最右的1
        int onlyOne = 0;
        for (int cur : nums) {
            if ((cur & rightOne) != 0)
                onlyOne ^= cur;
        return vector{onlyOne, eor^onlyOne};
    }
};
本站无任何商业行为
个人在线分享 » C语言 | Leetcode C语言题解之第136题只出现一次的数字
E-->