Garfy's Blog

愿投入的时间与精力都会积累成实力

#136 Single Number

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

#136 Single Number

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

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

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

我再想想。。。

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

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

a ^ 0 = a
a ^ 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;
    }
};


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Garfy_/article/details/46821671
文章标签: leetcode
个人分类: LeetCode 算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

#136 Single Number

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭