Lintcode82 Single Number solution题解

【题目描述】

Given2*n + 1numbers, every numbers occurs twice except one, find it.

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

【题目链接】

www.lintcode.com/en/problem/single-number/

【题目解析】

根据题意,共有2*n + 1个数,且有且仅有一个数落单,要找出相应的「单数」。鉴于有空间复杂度的要求,不可能使用另外一个数组来保存每个数出现的次数,考虑到异或运算的特性,根据x ^ x = 0和x ^ 0 = x可将给定数组的所有数依次异或,最后保留的即为结果。

【参考答案】

www.jiuzhang.com/solutions/single-number/

你可能感兴趣的:(Lintcode82 Single Number solution题解)