博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
确定只出现曾有两位数字数组
阅读量:6701 次
发布时间:2019-06-25

本文共 491 字,大约阅读时间需要 1 分钟。

称号:除了外面两个数字为整数数组。其他人物都出现两次。

请敲代码,找了两个数字只出现一次。它需要的时间复杂度O(n),空间复杂度是O(1)。

或深足够的认识。

要思路还是之前的数组中仅仅出现一次的数字的那种模式,一次遍历加上异或运算。那么这个异或的值肯定是这两个仅仅出现一次的数字的相异或的值。那么这个值的二进制表现形式中的1的结果就表示这两个数字在该bit位上不一样。那么通过此举,我们能够以这个bit位是否为1来从整个数组中把这两个仅仅出现一次的数字分开。

通过此举。别的出现两次的数字一会被分到同一组,那么结果就是有两组数据。每组都是奇数个数字。都有仅仅出现一次的数字。

#include
#include
int findOutTwo(int *a,int n,int &x,int &y){ assert(a); assert(n>2); int result=a[0]; for(int i=1;i

结果为:

这里写图片描写叙述

版权声明:本文博客原创文章,博客,未经同意,不得转载。

你可能感兴趣的文章
C#开发微信门户及应用(1)--开始使用微信接口
查看>>
(Protype Pattern)原型模式
查看>>
[Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.3.1
查看>>
android stuio eclipse映射下的快捷键
查看>>
Insert Interval
查看>>
浅谈P2P终结者原理及其突破
查看>>
串口WIF简单I调试
查看>>
把《c++ primer》读薄(3-3 标准库bitset类型)
查看>>
MDI多文档窗体续
查看>>
img图片自适应宽和高[转]
查看>>
Android Studio体验(一)--Window版本安装
查看>>
ubuntu install express
查看>>
js中substr与substring的差别
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
FusionCharts简单教程(一)---建立第一个FusionCharts图形
查看>>
sql中实现split()功能
查看>>
ZOJ 2562 More Divisors(高合成数)
查看>>
[原]Android打包之跨平台打包
查看>>
C++的try_catch异常
查看>>
(转)思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先,......
查看>>