260. 只出现一次的数字 III - 力扣(LeetCode)
题目:
给定一个整数数组 nums
,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。
思路:
代码:
class Solution {
public:
vector<int> singleNumber(vector<int>& nums)
{
vector<int> ret;
int c = 0;
for(auto e:nums)
{
c^=e;
}
int k = 0;
while(1)
{
if(c>>k&1)
{
break;
}
k++;
}
int a=0,b=0;
for(auto e: nums)
{
if(e>>k&1)
{
a^=e;
}
else
{
b^=e;
}
}
ret.push_back(a);
ret.push_back(b);
return ret;
}
};