Problem 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?
题目描述
一定一个数组,除了一个奇葩外,其它元素都出现了两次,那个奇葩只出现了一次。要求找出这个奇葩!
注意:
你的算法应该是线性时间复杂度的。你可以不用额外的空间吗?
解题思路
和很多其它的题目一样,这道题也要用到位运算来解决。一个数要是出现了两次,互相异或就等于0了。所以可以把数组里面的所有值做个异或,最后的结果就是那个单身汉。
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
a = 0
for i in nums:
a = a ^ i
return a