136. 只出现一次的数字/C++

在这里插入图片描述

使用异或的特性。

  1. a^a = 0;
  2. a^0 = a;
  3. (a^b)^c = a^(b^c)
    以上图例题为例,
    2^2^1 = 0^1 = 1
    4^1^2^1^2 = 4^(1^1)^(2^2) = 4^0^0 = 4
    当然此题也可以使用hash表来做。
int singleNumber(vector<int>& nums) {
    int res=0;
    for(int n:nums)
        res^=n;
    return res;
}