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取异或,还是它本身。

 

还有一行写法,不过是调用库函数,留坑。

posted @ 2016-03-05 21:52  co0oder  阅读(102)  评论(0编辑  收藏  举报