落单的数

落单的数

落单的数

Table of Contents

1 题目

给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。

2 挑战

循环一次,常数的空间消耗

3 思路

如果没有循环次数限制和常数的空间消耗限制,这个问题很简单。用一个数组来记录数字出现的次数,再找出一次的数字就可以了。

但是用常数的空间消耗,确实没有想到好方法,后来在网上搜到的方法。用亦或来做,真是聪明!

public class Solution {
    /**
      *@param A : an integer array
      *return : a integer 
      */
    public int singleNumber(int[] A) {
        // Write your code here
        int result = 0;
        for(int a: A) {
            result ^= a;
        }
        return result;
    }
}

Date: 2016-12-31 17:00

Created: 2016-12-31 周六 17:21

Validate

原文地址:https://www.cnblogs.com/yangwen0228/p/6239609.html