最后更新于6年前
设计很巧秒,初始a=0, b=0。
主要是使得第一次运算后,a=x,b=0;第二次a=0,b=x;第三次a=0,b=0……如此循环
相比于136,使用两个辅助变量a,b(而不是单一变量)来运算,ab的组合就有四种状态。
class Solution: def singleNumber(self, nums: List[int]) -> int: a, b = 0, 0 for num in nums: a = (a ^ num) & ~b b = (b ^ num) & ~a return a