问题描述:
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?
思路:
异或可以找出唯一出现一次的数。
代码:
class Solution {
public:
int singleNumber(vector<int>& nums) {
if(nums.size() == 1)
{
return nums[0];
}
int key = nums[0];
for(int i = 1; i < nums.size(); ++i)
{
key = key ^ nums[i];
}
return key;
}
};