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?
输入一组整数如[1,1,2,3,3],几乎所有数都出现两次,只有一个数出现一次,找出这个数。
思路:异或。A xor A = 0, A xor B xor A = B
class Solution {
public:
int singleNumber(vector<int>& nums) {
int ans=nums[0];
for(int i=1;i<nums.size();i++)
ans = ans xor nums[i];
return ans;
}
};