136. Single Number*

136. Single Number*

https://leetcode.com/problems/single-number/

题目描述

Given a non-empty 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?

Example 1:

Input: [2,2,1]
Output: 1

Example 2:

Input: [4,1,2,1,2]
Output: 4

C++ 实现 1

用哈希表的方法就不说了, 本题还可以用异或来做, 因为:

0 ^ a = a
a ^ a = 0
a ^ b = b ^ a

代码如下:

class Solution {
public:
    int singleNumber(vector<int>& nums) {
        int res = 0;
        for (auto &c : nums)
            res ^= c;
        return res;
    }
};
发布了394 篇原创文章 · 获赞 8 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Eric_1993/article/details/104750599