Description
Given an array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Code
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
res = 0
for i in nums:
res ^= i
return res
实话说一开始并没有想到位操作,是看答案看到的,遗憾,以后记住了。
def singleNumber3(self, nums):
return 2*sum(set(nums))-sum(nums)
看到的另一个有趣的答案,利用集合的性质来解决的。不过多亏了python语言的强大,支持这种操作。对于学C出身的我来说,根本就没往这个方向想过,因为实现太麻烦了。