【leetcode】260. 只出现一次的数字 III
class Solution: def singleNumber(self, nums: int) -> List[int]: # difference between two numbers (x and y) which were seen only once bitmask = 0 for num in nums: bitmask ^= num # rightmost 1-bit diff between x and y diff = bitmask & (-bitmask) x = 0 for num in nums: # bitmask which will contain only x if num & diff: x ^= num return [x, bitmask^x]