思路:最原始的方法,不用其他空间的方法没有想到,再说吧。
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;
}
};