[LeetCode 136] Single Number

来源:互联网 发布:东方财富炒股软件 编辑:程序博客网 时间:2024/04/30 21:09

题目内容

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;    }};
0 0