leetcode-136-只出现一次的数字
题目描述:
方法一:哈希表 O(N) O(N)
class Solution: def singleNumber(self, nums: List[int]) -> int: hash_table = {} for i in nums: try: hash_table.pop(i) except: hash_table[i] = 1 return hash_table.popitem()[0]
方法二:数学 O(n) O(n)
class Solution: def singleNumber(self, nums: List[int]) -> int: return 2*sum(set(nums))-sum(nums)
方法三:位操作 异或 O(n) O(1)
class Solution: def singleNumber(self, nums: List[int]) -> int: a = 0 for i in nums: a ^= i return a