#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @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]