方法一:字典
https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/solution/python3-zi-dian-qiao-jie-by-mu-ren-6/
class Solution:
def singleNumbers(self, nums: List[int]) -> List[int]:
cnt_dict = {}
for num in nums:
if cnt_dict.get(num):
del cnt_dict[num]
else:
cnt_dict[num] = 1
return list(cnt_dict.keys())
class Solution:
def singleNumbers(self, nums: List[int]) -> List[int]:
dic = collections.Counter(nums)
return(list(key for key, value in dic.items() if value == 1))
方法二:分组亦或
https://leetcode-cn.com/problems/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-lcof/solution/shu-zu-zhong-shu-zi-chu-xian-de-ci-shu-by-leetcode/
class Solution:
def singleNumbers(self, nums: List[int]) -> List[int]:
ret = functools.reduce(lambda x,y: x^y, nums)
div = 1
while div & ret == 0:
div <<= 1
a, b = 0, 0
for n in nums:
if n & div:
a ^= n
else:
b ^= n
return [a, b]