数组中只出现一次的数字 -- 尝试下set,以及异或^

原创 2016年05月31日 11:03:53


数组中只出现一次的数字

题目描述

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        if(data.size()==1){*num1 = 0;*num2 =0;return;}
		set<int> temp;
        set<int>::iterator it;
        for(int i : data){
            
            it=temp.find(i);    //查找键值为5的元素
            if(it!=temp.end())    //找到
                temp.erase(i);
            else            //未找到
                temp.insert(i);
        }
        for(int i : temp){
            *num2 = *num1;
            *num1 = i;
        }
    }
};

class Solution {
public:
    void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {
        if(data.size()<2) return;
        int temp=0;
        for(auto i : data){
            temp = temp ^ i;
        }
        int fenzu = 1;
        while(!(temp&fenzu)){
            fenzu = fenzu << 1;
        }
        int temp2=0;
        for(auto i : data){
            if(i&fenzu)
                temp2 = temp2^i;
        }
        *num1 = temp2;
        *num2 = temp^temp2;
    }
};



用异或实现查找只出现一次的数字

一个数组中只有两个数字是出现一次,其他所有数字都出现了两次,请找出这两个数字。...
  • xy913741894
  • xy913741894
  • 2016年08月07日 21:28
  • 1512

(经典的异或技巧)数组中只出现一次的数字 (两种方法)

数组中只出现一次的数字 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 方法一: 采用异或运算 (算是标准的思路吧) 思路: 此题考察...
  • hyqsong
  • hyqsong
  • 2015年10月27日 10:38
  • 2496

剑指offer:数组中只出现一次的数字(java)

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请些程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1).     如输入数组{2,4,3,6,3,2,5,...
  • abc7845129630
  • abc7845129630
  • 2016年10月06日 19:03
  • 1139

剑指Offer面试题40(Java版):数组出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。  * 请些程序找出这两个只出现一次的数字。要求时间复杂度为O(n),空间复杂度为O(1) 例如输入数组{2,4,3,6,3,2,5,...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月10日 19:04
  • 1724

经典算法——数组中只出现一次的数字

题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 class Solution { public: void Fi...
  • geekmanong
  • geekmanong
  • 2016年03月19日 17:22
  • 1519

数组中只出现一次的数字(java版)

【题目描述】一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。【解题思路1】暴力解法 //1. 对数组进行排序。 //2. 遍历一次数组,将array[i...
  • ouyangyanlan
  • ouyangyanlan
  • 2017年05月23日 22:19
  • 1718

查找数组中只出现一次的一个数

对于一个数组其中每个数出现了两次,只有一个数出现了一次,找出这个只出现了一次的一个数,这是一个经典的面试题,把数组中的数进行异或运算,出现两次的数异或的结果为0,最终异或的结果就为只出现了一次的一个数...
  • xhp1564881
  • xhp1564881
  • 2016年04月06日 10:04
  • 1700

【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
  • 1996

java 找出数组中只出现一次的数字

题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 算法如下:import java.util.HashMap; import java.util.It...
  • diu_brother
  • diu_brother
  • 2016年04月01日 21:00
  • 1568

位运算之只出现一次的的数字

****************位运算系列之数组中只出现一次的数字****************** //题目(1):在一个数组中只有一个数字出现一次,其他数字都是成对出现的!让你找出这...
  • bitboss
  • bitboss
  • 2016年06月06日 11:15
  • 875
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数组中只出现一次的数字 -- 尝试下set,以及异或^
举报原因:
原因补充:

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