LeetCode 136. Single Number
思路源于位运算关于异或^的定律:a^b^b = a, a^0 = a;
1 class Solution { 2 public: 3 int singleNumber(vector<int>& nums) { 4 int res=0; 5 for(auto num : nums) 6 res ^= num; 7 return res; 8 } 9 };
如果一个数出现两次,那么会抵消掉,只剩下那个只出现一次的数,然后与0取异或,还是它本身。
还有一行写法,不过是调用库函数,留坑。