LintCode :落单的数

来源:互联网 发布:火拼双扣的算法规则 编辑:程序博客网 时间:2024/04/28 14:09

LintCode :落单的数

题目

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

样例

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

思路

我们知道两个相同的数异或为零,在给出的数据中除了落单的之外其他的数都有两个,所以把所有的数异或之后就能得到落单的那个数了。

代码

int singleNumber(vector<int> &A) {        if(A.size() == 0)            return 0;        int result = 0;        for(vector<int>::iterator it = A.begin(); it < A.end(); it++)            result = result xor *it;        return result;    }
0 0
原创粉丝点击