# 统计只出现一次的数字
解题思路: 异或运算. 一个数和它本身做异或运算结果为 0,即
a ^ a = 0
;一个数和 0 做异或运算的结果为它本身,即a ^ 0 = a
/**
* 统计只出现一次的数字
* @param {number[]} nums
* @returns number
*/
const singleNumber = (nums) => {
let res = 0
for(const n of nums) {
res ^= n
}
return res
}
// ---------- Test ----------
console.log(singleNumber([4,1,2,3,1,2,3]))
// 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17