给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
方案一:去重求和,乘2减原
def singleNumber(nums):
"""
:type nums: List[int]
:rtype: int
"""
return sum(set(nums)) * 2 - sum(nums)
方案二:根据 异或运算法则, 交换律;0 与 任意数x 异或后都是x
def singleNumber(nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for i in nums:
res ^= i
return res