题解 | #数组中只出现一次的两个数字#
数组中只出现一次的两个数字
http://www.nowcoder.com/practice/389fc1c3d3be4479a154f63f495abff8
思路
异或的性质:
x ^ 0 = x
x ^ x = 0
- 同时满足
异或的交换律
步骤
对于这道题:
- 先将所有的数进行异或,得到的结果跟要求的这两个数进行异或的结果相同。
- 由于a、b不同,所以一定在二进制的某一位上的不同,找到这个位
- 初始化
a=b=0
,顺序遍历,根据num与那一位与结果分类,更新a ^= num