异或运算简单使用
异或运算的简单使用
参考: https://blog.csdn.net/qq_19272431/article/details/78564391
交换两个数
let a = 5
let b = 9
//a ^ b ^ b = a ^ 0 = a;
a ^= b; // <=> a = a + b
b ^= a; // <=> b = a - b <=> b = a ^ b ^ b = a ^ 0 = a
a ^= b; // <=> a = a - b <=> a = a ^ b ^ b = b ^ 0 = b
console.log(a) // 9
console.log(b) // 5
从数组中找出唯一元素
const singleNumber = (arr) => {
const len = arr.length;
let res = 0;
if (!len) return null;
if (len === 1) return arr[0];
for (const element of arr) {
res ^= element; // a ^ b ^ b = a
}
return res;
}
const arr = [1, 2, 3, 4, 5, 3, 2, 4, 5]
const res = singleNumber(arr)
console.log(res) // 1

浙公网安备 33010602011771号