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?
解法:
相同的两个数 按位异或 结果为0,
则 可以把所有数字异或后的结果 为单独的数字。
int singleNumber(vector<int>& nums) { int size=nums.size(); if(size==0) cout<<"error"; int result=nums[0]; for(int i=1;i<size;++i){ result^=nums[i]; } return result; }
原文:http://searchcoding.blog.51cto.com/1335412/1751208