20170515_使用异或运算求出孤独数

20170515_使用异或运算求出孤独数


  思想:
两个相同的数异或结果为0,不同为1 ,根据该规则下列过程如下
假设 数组为 2,3,2,3,4,1,4
那么结果应该为1
2^3=0000 0010 ^ 0000 0011 = 0000 0001   1
1^2=0000 0001 ^ 0000 0010 = 0000 0011    3
3^3=0000 0011 ^ 0000 0011 =  0000 0000    0
0^4=0000 0000 ^ 0000 0100 = 0000 0100  4
4 ^ 1 =0000 0100 ^ 0000 0001 = 0000 0101 5
5 ^ 4= 0000 0101 ^ 0000 0100 =0000 0001  1
整个过程如上,最后结果为1。

代码:

//136. Single Number 
//Given an array of integers, every element appears twice except for one. 
//Find that single one.
//Note:
//Your algorithm should have a linear runtime complexity.
//Could you implement it without using extra memory? 
#include
#include
using namespace std;

void Outdata(vector &a)
{
	auto beg=a.begin();
	for(; beg!=--a.end(); ++beg)
		cout<<*beg<<",";
	cout<<*beg< &nums)
	{
		int result=0;
        for(auto n:nums)
			result=result^n;
		return result;
    }
};

int main()
{
	vector a;
	int ch;
	cout<<"依次输入数据:"<>ch)
		a.push_back(ch);
	cout<<"输入的数据是:"<






你可能感兴趣的:(C++剑指offer)