题解 | #只出现一次的数字#位运算#附异或运算性质

只出现一次的数字

https://www.nowcoder.com/practice/c04bd25f0396471b90dfc30d96b9109b

异或运算有以下三个性质:

1. 任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a;

2. 任何数和其自身做异或运算,结果是 0,即 a⊕a=0;

3. 异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b;

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        // write code here
        int n;
        for(int i:nums){
            n^=i;//利用性质1和2;
        }
        return n;
    }
};

全部评论

相关推荐

永不遗忘:才这么点算什么拉黑,我初筛连着挂几十次了,最后还是能进面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务