这题是简单难度,原文
用一个map记录出现过的数字,再次出现就删除,最后只会剩下一个。
var singleNumber = function(nums) {
const has = {};
for (let i = 0; i < nums.length; i++) {
let num = nums[i];
if (has[num] === undefined) {
has[num] = num;
} else {
delete has[num];
}
}
return Object.values(has)[0];
};
评论中的方法很好
var a = [2,3,2,4,4]
// 2 ^ 3 ^ 2 ^ 4 ^ 4等价于 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3
不需要额外空间的方法,就往位运算上想