【题目描述】
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/