【题目】
一个数组中除了两个数是单个的,其他的数都有两个,请找出这两个单个的数
【code】
#include<iostream>
//#include<vector>
#include<stack>
#include<algorithm>
//#include<stack>
#include<queue>
#include<set>
using namespace std;
void findTwoNum(vector<int>& nums)
{
int tmp = 0;
for (int i = 0; i < nums.size(); i++)
{
tmp = tmp ^ nums[i];
}
int times = 0;
for (int i = 0; i < 32; i++)
{
if ((tmp&1)==1)
{
break;
}
tmp = tmp >> 1;
times++;
}
int a = 0, b = 0;
for (int i = 0; i < nums.size(); i++)
{
if (((nums[i]>>times)&1)==1)
{
a = a ^ nums[i];
}
else
{
b = b ^ nums[i];
}
}
cout << a << " " << b << endl;
}
int main()
{
vector<int> nums = { 1, 11, 2, 2, 3, 1,3, 4,23, 4, 6, 6 };
findTwoNum(nums);
return 0;
}
/****
***/