LintCode 82. 落单的数

Posted zslhg903

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode 82. 落单的数相关的知识,希望对你有一定的参考价值。

题目:给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

 

样例

给出 [1,2,2,1,3,4,3],返回 4

挑战 

一次遍历,常数级的额外空间复杂度

 

解:异或运算A^A=0,A^A^A=0^A=A

class Solution {
public:
    /*
     * @param A: An integer array
     * @return: An integer
     */
    int singleNumber(vector<int> &A) {
        // write your code here
        int ans = 0;
        for(int i=0,sz=A.size(); i<sz; ++i)
            ans ^= A[i];
        return ans;
    }
};

 

以上是关于LintCode 82. 落单的数的主要内容,如果未能解决你的问题,请参考以下文章

codevs 3295 落单的数

落单的数

题2 找出落单的那个数

程序员算法趣味题:落单的男女

归并排序

算法很美Java版