40.数组中只出现一次的数字

原创 2015年07月10日 20:03:33



void FindNumsAppearOnce(int data[], int length, int* num1, int* num2)
{
if (data == NULL || length < 2)
return;
int resultExclusiveOR = 0;
for (int i = 0; i < length; ++i)
resultExclusiveOR ^= data[i];
unsigned int indexOf1 = FindFirstBitIs1(resultExclusiveOR);
*num1 = *num2 = 0;
for (int j = 0; j < length; ++j)
{
if (IsBit1(data[j], indexOf1))
*num1 ^= data[j];//异或
else
*num2 ^= data[j];
}
}
unsigned int FindFirstBitIs1(int num)
{
int indexBit = 0;
while (((num & 1) == 0) && (indexBit < 8 * sizeof(int)))
{
num = num >> 1;
++indexBit;
}
return indexBit;
}
bool IsBit1(int num, unsigned int indexBit)
{
num = num >> indexBit;
return (num & 1);
}




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

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

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

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

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

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

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

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

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

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

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

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

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

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

****************位运算系列之数组中只出现一次的数字****************** //题目(1):在一个数组中只有一个数字出现一次,其他数字都是成对出现的!让你找出这...
  • bitboss
  • bitboss
  • 2016年06月06日 11:15
  • 878

【剑指offer】数组中只出现一次的数字(1)

思路:上篇博文中已经了解到异或去重的原理,而且知道如果只有一个只出现一次的数字的求法,但这里是有两个只出现一次的数字,我们便要想办法把他分为两个子数组,每个子数组中包含一个只出现一次的数字,其他的数字...
  • mmc_maodun
  • mmc_maodun
  • 2014年05月31日 08:59
  • 3987

Java (1)寻找一堆数字中只出现一次的数字 (2)统计一堆文件后缀名共有几种类型(即统计一堆数字中出现过那几个数字)

//**********************************************寻找一堆数字中只出现一次的数字*************************************...
  • nrsc272420199
  • nrsc272420199
  • 2017年07月03日 10:04
  • 221
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:40.数组中只出现一次的数字
举报原因:
原因补充:

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