美文网首页
LintCode 82. Single Number

LintCode 82. Single Number

作者: Andiedie | 来源:发表于2017-08-19 10:46 被阅读0次

原题

LintCode 82. Single Number

Description

Given 2*n + 1 numbers, every numbers occurs twice except one, find it.

Example

Given [1,2,2,1,3,4,3], return 4

Challenge

One-pass, constant extra space.

解题

利用异或的自反特性,a ^ b ^ b = a ^ 0 = a
所以成双的数都会异或两次0抵消,而单个的数则会异或一次0成为最终答案

class Solution {
public:
    /*
    * @param A: An integer array
    * @return: An integer
    */
    int singleNumber(vector<int> A) {
        // write your code here
        int x = 0;
        auto it = A.begin();
        while (it != A.end()) {
            x ^= *it++;
        }
        return x;
    }
};

相关文章

  • LintCode 82. Single Number

    原题 LintCode 82. Single Number Description Given 2*n + 1 n...

  • 一篇文章搞懂面试中leetcode位操作算法题

    Single Number落单的数 落单的数 IISingle Number II Single Number I...

  • single number

    题目描述 给定一个整数数组,除了一个元素外,每个元素都会出现两次。找到那一个出现一次的元素。注意:时间复杂度O(n...

  • Single number

    用异或

  • Single Number

    题目要求找出在算法的时间复杂度为线性时间,且不占据额外的内存 下面讲解算法:该算法主要用到了位运算中的异或运算^,...

  • Single Number

    Single Number 今天是一道有关位运算的题目,来自LeetCode(#136),难度为Medium,Ac...

  • Single Number

    Problem Given an array of integers, every element appears...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    Given an array of integers, every element appearstwiceexc...

  • Single Number

    按位亦或可求解,复杂度为O(n)

网友评论

      本文标题:LintCode 82. Single Number

      本文链接:https://www.haomeiwen.com/subject/trctdxtx.html