https://leetcode-cn.com/problems/single-number-ii/submissions/
设计很巧秒,初始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