您的位置:首页 > 其它

LeetCode--Single Number

2015-11-03 10:54 459 查看
题目:

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?

代码:
int singleNumber(vector<int>& nums) {
int n = 0;
for(int i = 0; i < nums.size(); ++i)
{
n ^= nums[i];
}
return n;
}


运用"按位异或"

a^b^a = b;

将所有数异或,所有出现两次的都消除,得到出现一次的那个.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: