- 描述:
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
- 样例:
Input:[1,1,2,2,3,4,4]
Output:3
- 代码:
class Solution:
"""
@param A: An integer array
@return: An integer
"""
def singleNumber(self, A):
# write your code here
EOR = 0
for item in A:
# 使用异或,相同的数异或为0,与先后顺序无关
EOR = EOR^item
return EOR
- 讲解:
^:按位异或
如:3^4实际上是011^100 = 111 即7
而7^4为 111^100 = 011 即3
如果一个数字出现两次,执行^后,为之前的数字