#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型一维数组
#
class Solution:
def FindNumsAppearOnce(self , nums: List[int]) -> List[int]:
res = [0,0]
sum = 0
# 得到 a^b
for i in nums:
sum ^= i
k = 1
# 找到第一位不一样的数 分组
while k & sum == 0:
k <<= 1
for i in nums:
# 因为异或必定有一位不一样 所以用这个来区分 一样的数分到的组也是同样的 故其数照样为0
if k & i == 0:
res[0] ^= i
else:
res[1] ^= i
return sorted(res)
# 哈希
# hashtable = dict()
# for i in nums:
# if i in hashtable.keys():
# hashtable[i] += 1
# continue
# hashtable[i] = 1
# a = []
# for key,value in hashtable.items():
# if value == 1:
# a.append(key)
# print(hashtable)
# return sorted(a)