leetcode 136. Single Number

原题:
Given an array of integers, every element appears twice except for one. Find that single one.

Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
大意:
给你一个数组,除了一个元素之出现一次以外,剩下的均出现两次。让你不用额外内存和线性时间去找出这个数。

class Solution {
public:
    int singleNumber(vector<int>& nums)
    {
        int a=nums[0];
        for(int i=1;i<nums.size();i++)
            a=a^nums[i];
        return a;
    }
};

解答:
这里用到了位运算疑惑的性质,如果有一堆数,其中只有一个数出现了奇数次,那么就可以用不断疑惑的方式找出这个数。

你可能感兴趣的:(LeetCode)