给定一个整数数组,除了某个元素外其余元素均出现两次。请找出这个只出现一次的元素。
备注:
你的算法应该是一个线性时间复杂度。 你可以不用额外空间来实现它吗?
class Solution:
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 1:
return nums[0]
nums.sort()
if nums[0] != nums[1]:
return nums[0]
if nums[-2] != nums[-1]:
return nums[-1]
for i in range(len(nums)):
if nums[i-1] != nums[i] and nums[i] != nums[i+1]:
return nums[i]
!!!异或!!!
def singleNumber(nums):
"""
:type nums: List[int]
:rtype: int
"""
a = 0
for i in nums:
a ^= i
return a