/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param array int整型一维数组
 * @return int整型一维数组
 */
function FindNumsAppearOnce(array) {
    // write code here
    let temp = 0;
    // 求出异或结果
    for (let val of array) {
        temp ^= val;
    }
    let mark = 1;
    // 左移位运算,找到结果第一个为1的下标
    while ((temp & mark) == 0) {
        mark <<= 1;
    }
    let a = 0, b = 0, t;
    for (let val of array) {
        if ((val & mark) == 0) {
            a ^= val;
        } else {
            b ^= val;
        }
    }
    if (a > b) {
        t = a;
        a = b;
        b = t;
    }
    return [a, b];
}
module.exports = {
    FindNumsAppearOnce: FindNumsAppearOnce,
};