如何找出数组中只出现一次的数字

原创 2016年05月31日 08:32:43

笔试面试宝典中的一个题目
问题描述:一个数组里除了一个数字之外,其他数字都出现了两。找出这个只出现一次的数字。时间复杂度为O(n),空间复杂度为O(1)。
用异或运算的性质:任何数字异或自己都等于0,数字与0异或结果为数字本身。异或的交换律。

public class Test {
    public static int findNotDouble(int []arr){
        int tmp = arr[0];
        for(int i = 1; i<arr.length; i++){
            tmp ^= arr[i];
        }
        return tmp;
    }
    public static void main(String[] args) {
        int []arr = {1,2,3,5,5,3,2,1,6};
        int result = findNotDouble(arr);
        System.out.println(result);
    }
}

如果题目改为数组A中,一个整型数组除了一个数字以外,其他数字都出现了3次,那么如何找到这个数?

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

找出数组中两个只出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。还是理解不够深刻。 这题的主要思路还是之前的数组中只...

找出一个整型数组中只出现了一次的数字

要求:一个整型数组中除了两个数字外(记为X,Y),其余数字都出现了两次,请写程序找出这两个只出现了一次的数字,要求:时间复杂度为O(n),空间复杂度为O(1)。      思路:假设数组中只有一个数字...
  • htq__
  • htq__
  • 2016年03月12日 21:27
  • 739

找出数组中两个只出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析:这是一道很新颖的关于位运算的面试题。 ...

找出数组中两个只出现一次的数字

转自:http://blog.csdn.net/ewanyou/archive/2011/05/25/6445209.aspx http://www.cnblogs.com/aLittleBitCo...

找出数组中2个只出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析一下:这个问题有点特殊,而且不能按...

找出数组中两个只出现一次的数字

问题描述:一个数组中除了两个数字之外,其余数字均出现了两次(或偶数次)。请写出程序查找出这两个只出现一次的数字,要求时间复杂度为O(n),空间复杂度为O(1)。 问题分析:这是一道很新颖的关于位运算...

【LeetCode】- Single Number(从数组中找出只出现一次的数字)

[Single Number] Given an array of integers, every element appears twice except for one. Find that...
  • zdp072
  • zdp072
  • 2014年01月01日 21:00
  • 1786

找出数组中两个只出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析:这是一道很新颖的关于位运算的面试题。 首先...

第六十一题(找出数组中两个只出现一次的数字)

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。 请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 分析:乍眼看上去,...

程序员面试题精选100题(34)-找出数组中两个只出现一次的数字

http://zhedahht.blog.163.com/blog/static/2541117420071128950682/ 题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次...
  • ZCSYLJ
  • ZCSYLJ
  • 2011年09月29日 11:40
  • 318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何找出数组中只出现一次的数字
举报原因:
原因补充:

(最多只允许输入30个字)