您的位置:首页 > 其它

LeetCode---(136) Single Number

2015-05-18 15:07 393 查看
Given an array of integers, every element appears twice except
for one. Find that single one.

常规的做法,就是把数组排序,然后进行比较

class Solution {
public:
int singleNumber(vector<int>& nums) {

int N=nums.size();
if(N==1)
return nums[0];

sort(nums.begin(),nums.end());
for(int i=0;i<N;i++)
{
if(i%2==0)
{
if(nums[i]!=nums[i+1])
{
return nums[i];
break;
}
}
}
}
};
也可以巧用异或运算符,异或,不仅能处理两次的情况,只要出现偶数次,都可以清零。
class Solution {
public:
int singleNumber(vector<int>& nums) {

int N=nums.size();

int res=0;
for(int i=0;i<N;i++)
{
res^=nums[i];
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: