LeetCode: Single Number

思路:最原始的方法,不用其他空间的方法没有想到,再说吧。

code:

class Solution {
public:
    int singleNumber(int A[], int n) {
        map<int,int> count;
        for(int i = 0;i<n;i++)
            count[A[i]]++;
        for(map<int,int>::iterator it = count.begin();it!=count.end();it++)
            if(it->second == 1)return it->first;
    }
};

补上快速方法:如果一个元素出现两次,抑或操作后会变为0,依次对所有元素进行抑或操作,最后的结果就是只出现依次的元素。

code:

class Solution {
public:
    int singleNumber(int A[], int n) {
        int ret = 0;
        for(int i = 0;i < n;i++)
            ret ^= A[i];
        return ret;
    }
};


你可能感兴趣的:(LeetCode: Single Number)