使用位运算。对于这道题,可使用异或运算 \oplus⊕。异或运算有以下三个性质。
class Solution:
def singleNumber(self, nums: List[int]) -> int:
return reduce(lambda x,y:x^y,nums)
使用哈希表存储
class Solution:
def singleNumber(self, nums: List[int]) -> int:
dic_ = dict()
for i in nums:
if i not in dic_:
dic_[i] = 1
else:
dic_[i] += 1
for k,v in dic_.items():
if v == 1:
return k
class Solution:
def singleNumber(self, nums: List[int]) -> int:
a = b =0
for num in nums:
a = ~b & (a^num)
b = ~a & (b^num)
return a