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