只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
Python代码如下 1
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
l=len(nums)
t=0
for i in range(l):
t ^= nums[i]
return t
异或运算,相异为真,相同为假,所以
a^a = 0 ;0^a = a
使用异或运算,将所有值进行异或,因为异或运算满足交换律
a ^ b ^ a = a ^ a ^ b = b
所以数组经过异或运算,单独的值就剩下了 ↩︎