题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
思路一:哈希表
class Solution:
def singleNumber(self,nums):
dic = dict()
for i in nums:
if i not in dic:
dic[i] = 1
else:
dic[i] += 1
for item in dic:
if dic[item] == 1:
return item
你可以不使用额外空间来实现吗?
思路二:位运算——一个数与其本身异或运算仍为这个数
class Solution:
def singleNumber(self,nums):
ret = 0
for i in nums:
ret = ret ^ i
return ret