136. 只出现一次的数字


  1. 交换律:a ^ b ^ c <=> a ^ c ^ b
  2. 任何数于0异或为任何数 0 ^ n => n
  3. 相同的数异或为0: n ^ n => 0

var a = [2,3,2,4,4]

2 ^ 3 ^ 2 ^ 4 ^ 4等价于 2 ^ 2 ^ 4 ^ 4 ^ 3 => 0 ^ 0 ^3 => 3

这个异或法我真的没想到,还是基础不扎实呀!

int singleNumber(int* nums, int numsSize){
    int n=nums[0];
    for(int i=1;i<numsSize;i++)
       n=n^nums[i];
    return n;
}

《“136. 只出现一次的数字”》 有 1 条评论