136. Single Number

https://leetcode.com/problems/single-number/

给定一个非空数组,除了有一个元素外,其他元素出现了两次,找出那个出现了1次的数
要求:线性复杂度,且不能使用额外内存空间

分析:
使用 异或 XOR,因为 a ^ a=0,这样就可以将里面相同的两两进行抵消,最后剩下的那个数就是出现了1次的数

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int result=0;
        for(int i=0; i<nums.size(); ++i)
        {
            result ^= nums[i];
        }
        return result;
        
    }
};
posted @ 2020-04-02 21:40  默写年华  阅读(125)  评论(0编辑  收藏  举报