一、题目要求
Given an array of integers, every element appears twice except for one. Find that single one.
二、代码实现
解法1:
int singleNumber(vector<int>& nums) {
if(nums.size()==1)
return nums[0];
map<int,bool> m;
for(auto tmp=nums.begin();tmp!=nums.end();tmp++)
{
if(m.find(*tmp)!=m.end())
{
m.find(*tmp)->second=false;
}
else
{
m[*tmp]=true;
}
}
//
for(auto tmp=m.begin();tmp!=m.end();tmp++)
{
if(tmp->second)
return tmp->first;
}
}
解法2:
int singleNumber(vector<int>& nums) {
if(nums.size()==1)
return nums[0];
int result=*nums.begin();
for(auto tmp=nums.begin()+1;tmp!=nums.end();tmp++)
{
result^=*tmp;
}
//
return result;
}