您的位置:首页 > 其它

LintCode :落单的数

2017-03-18 15:50 239 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  异或