136. Single Number
這題的想法是用消去法,很像是抽鬼牌,每次只要有成對的牌就消去,直到最後一張就是鬼牌了(答案)
class Solution:
def singleNumber(self, nums: List[int]) -> int:
S = set()
for num in nums:
if num not in S:
S.add(num)
else:
S.remove(num)
return S.pop()
不過這題有一個很特別的解法,那就是靠位元操作去判斷。
class Solution:
def singleNumber(self, nums: List[int]) -> int:
ans = 0
for num in nums:
ans ^= num
return ans