落单的数
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; } }