#136 Single Number

来源:互联网 发布:用友网络 编辑:程序博客网 时间:2024/05/29 02:01

再来一道通过率第二高的题目~是中等难度咯!

#136 Single Number

题目的意思是在一个数组中,所有的数都出现了两次,只有一个数只出现了一次,找出这个数。

这当然难不倒我哈哈哈哈哈!

可是,可是,要求O(n)时间,而且O(1)内存,这……

我再想想。。。

遍历一次。。就找到。。只出现一次的数。。。

还是看下题解吧。啊啊啊啊啊啊啊!原来这么简单!就只要用异或来做就行了!

a ^ 0 = aa ^ a = 0

好简单啊我怎么忘了这个!

好吧,一分钟解题,设一个常量0,然后遍历一遍,异或每一个数,出现两次的就异或成0了,只出现一次的就剩下咯

class Solution {public:    int singleNumber(vector<int>& nums) {        vector<int>::iterator it;        int tmp = 0;        for (it=nums.begin();it!=nums.end();it++) {            tmp ^= *it;        }        return tmp;    }};


0 0