题目描述:
Given an array of integers, every elementappears 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?
解法:任何数与自己本身异或(xor)为0, 利用这条性质可以将单独出现一次的数据找出。
class Solution {
public:
int singleNumber(vector<int>& nums) {
vector<int>::iterator itevec = nums.begin();
int result = *itevec;
itevec++;
for(; itevec != nums.end(); itevec++)
result = result xor *itevec;
return result;
}
};