看下面题解都太复杂了,写个简单的C++

数组中只出现一次的数字

https://www.nowcoder.com/questionTerminal/e02fdb54d7524710a7d664d082bb7811?answerType=1&f=discussion

class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        int ans = 0;
        for(int d: data)
            ans ^= d;
        *num1 = ans; *num2 = ans;
        int tmp = ans &(~ans+1);    //取最右边1
        for(int d: data){
            if(tmp&d)
                *num1 ^= d;
            else
                *num2 ^= d;
        }
    }
};
全部评论

相关推荐

起名字真难233:人家只有找猴子的预算,来个齐天大圣他们驾驭不住呀😂😂
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务