您的位置:首页 > 其它

LeetCode: Single Number

2014-04-10 11:43 393 查看
思路:最原始的方法,不用其他空间的方法没有想到,再说吧。

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: