您的位置:首页 > 其它

[LeetCode 136] Single Number

2016-08-29 23:38 363 查看

题目内容

136.Single Number

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?

题目来源

题目简述

在数组中找出唯一一个不成对的数。

题目分析

由于题目要求用线性时间且不用额外空间解决问题,所以只能用一次遍历,而且只能使用常数存储空间。所以对每个元素使用异或运算,相同元素的运算结果为0,其他元素与0进行异或运算结果不变。所以遍历整个数组后运算结果即为唯一的不同元素。

代码示例

class Solution {
public:
int singleNumber(vector<int>& nums) {
if(nums.empty())
return -1;
int result=nums[0];
int n=nums.size();
for(int i=1;i!=n;i++)
result=result^nums[i];
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: