原题
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。
样例
给出** [1,2,2,1,3,4,3]**,返回 4
解题思路
- 位运算 - 利用异或运算的特殊性,相同的数异或后等于0:1 XOR 1 = 0
- 同时,异或运算有交换律:115 = 5 = 151
完整代码
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for item in nums:
res ^= item
return res
网友评论