/**
* @param {number[]} nums
* @return {number}
*/
var singleNumber = function(nums) {// 异或 a ^ b ^ a = b.
var ret = 0;
nums.forEach(function(num){
ret ^= num;
});
return ret;
};
这道题的关键就是位运算,异或运算的运算律有一条是:a ^ b ^ a = b。
因此,既然只有一个数是唯一的,其余的都出现了两次,那么这道题只要把所有的数字都异或一遍,最后的结果就是那个唯一的数。