[剑指offer][面试题40]数组中只出现一次的数字
来源:互联网 发布:android sdk linux 编辑:程序博客网 时间:2024/04/30 01:39
一个整型数组中除了两个数字之外,其他的数字都出现了两次,写出程序找出这两个只出现了一次的数字,时间复杂度要求O(n),空间复杂度要求O(1).
#include <iostream>using namespace std;bool findNumsAppearOnce(int *piData, int iLen, int & iNum0, int & iNum1){if (iLen<2){return false;}int iXOR = 0;for (int i=0; i<iLen; i++){iXOR ^= piData[i];}int iFlag = 1;while ( !(iXOR & iFlag) && (iFlag<0x8FFFFFFF) ){iFlag <<= 1;}iNum0 = 0;iNum1 = 0;for (int i=0; i<iLen; i++){if (piData[i] & iFlag){iNum0 ^= piData[i];}else{iNum1 ^= piData[i];}}return true;}int main(){int data[8] = {2,4,3,6,3,2,5,5};int a, b;bool bFound = findNumsAppearOnce(data, 8, a, b);if (bFound){cout<<a<<" "<<b<<endl;}}
- [剑指offer][面试题40]数组中只出现一次的数字
- [剑指offer]面试题40:数组中只出现一次的数字
- [剑指offer]面试题40:数组中只出现一次的数字
- 剑指Offer:面试题40 数组中只出现一次的数字
- 剑指offer 面试题40—数组中两个只出现一次的数字
- 《剑指Offer》学习笔记--面试题40:数组中只出现一次的数字
- 【剑指Offer学习】【面试题40:数组中只出现一次的数字】
- 剑指offer面试题40-数组中只出现一次的数字
- 剑指offer-面试题40:数组中只出现一次的数字
- 剑指offer之面试题40数组中只出现一次的数字
- 剑指offer面试题40:数组中只出现一次的数字
- 剑指Offer面试题40:数组中只出现一次的数字 Java实现
- 剑指offer--面试题40:数组中只出现一次的数字
- 剑指offer——面试题40:数组中只出现一次的数字
- 剑指offer-面试题40-数组中只出现一次的数字
- 【剑指offer】面试题40-数组中只出现一次的数字
- 剑指Offer系列-面试题40:数组中只出现一次的数字
- 剑指offer-面试题40 : 数组中只出现一次的两个数字
- C++ Builder 全部API
- 朴素贝叶斯--情感分类
- From WWDC. June 10, 2013
- QStringList
- OCP-1Z0-051-V9.02-28题
- [剑指offer][面试题40]数组中只出现一次的数字
- 详谈C++游戏程序员发展前景
- Informix迁移至Oracle-数据清理方案
- windows编程之七文本编辑器的操作
- 计算指数函数的算法
- linux下通过yum安装svn及配置
- 面向对象(4)
- OCP-1Z0-051-V9.02-29题
- LESS详解之变量(@)