可以用hash表:
class Solution {
public:
int singleNumber(vector<int>& nums) {
unordered_map<int,int> re;
for(int i=0;i<nums.size();i++)
{
if(re.find(nums[i])==re.end())
{
re[nums[i]]=1;
}
else
{
re.erase(nums[i]);
}
}
return re.begin()->first;
}
};
或者更简单的,异或,两个相同的数异或是0,异或满足交换律。
class Solution {
public:
int singleNumber(vector<int>& nums) {
int result=0;
for(int i=0;i<nums.size();i++)
{
result^=nums[i];
}
return result;
}
};