寻找一个数字数组中只出现一次的数字

寻找一个数字数组中只出现一次的数字

方法 一:循环遍历出现次数

此方法太过复杂,大家都知道,因此不写其代码

方法二:使用位运算 异或

前置知识点:
1、二进制异或,相同为0 不同为1,且0和任何二进制数异或都为那个数字
2、异或满足交换律,如 a ^ b ^ a == a ^ a ^ b = b
例:

11 ^ 11 = 00 
10 ^ 11 = 01
00 ^ 11 = 11
00 ^ 10 = 10

示例:

let nums = [1, 3, 2, 3, 5, 5, 2]
nums.reduce((x, y) => x ^ y)

你可能感兴趣的:(算法,数据结构)