【leetcode】136. 只出现一次的数字

41 阅读1分钟

leetcode-136.png

这题也是位运算,利用了异或的性质
异或操作的性质:

  • a ^ a = 0 (相同的数异或为 0)
  • a ^ 0 = a
var singleNumber = function (nums) {
    let res = 0;
    for (let num of nums) {
        res ^= num;
    }
    return res;
};

因此:
如果一个数出现两次,它们异或结果是 0;
最后只剩下那个出现一次的数字。