import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型一维数组
     */
    public int[] FindNumsAppearOnce (int[] nums) {
        // write code here
        int xor = 0;
        for (int x : nums) {
            xor ^= x;
        }
        int bit = xor & (-xor);  // 取出末尾的 1 

        int xor1 = 0, xor2 = 0;
        for (int x : nums) {
            if ((x & bit) == 0) {  // x 对应位置为 0
                xor1 ^= x;
            } else {
                xor2 ^= x;
            }
        }
        if (xor1 > xor2) {  // 保证 xor1 更小
            int temp = xor1;
            xor1 = xor2;
            xor2 = temp;
        }
        return new int[] { xor1, xor2 };
    }
}