#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param array int整型一维数组
# @return int整型一维数组
#
class Solution:
def FindNumsAppearOnce(self , array ):
# write code here
# 假设要求的两个数是x, y. 先全部xor, 得到XORsum = x xor y
XORsum = 0
for i in array:
XORsum ^= i
# 找到XORsum中是1的某一位
t = 1
while (XORsum&t)==0:
t= t<<1
#按照这一位将原数组分成两个,分别包含x和y. 再组内异或即可得到结果。
ans1 = 0
ans2 = 0
for i in array:
if (t&i)==0:
ans1 ^= i;
else:
ans2 ^= i;
if ans1<ans2:
return [ans1,ans2]
else:
return [ans2,ans1]


京公网安备 11010502036488号