算法复习:数组中只出现一次的数字
来源:互联网 发布:minecraft0.15js 编辑:程序博客网 时间:2024/06/04 19:25
题目描述
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。
解题思路
看到这个题目想到的最简单的思路是:使用HashMap将数字和次数存起来,再遍历一遍判断是否是两次即可,但是这种思路显然不是出题者想要的解法。
所以可以从“2次”思考,两个数的什么操作可以识别出是否相同?对了。异或!任何一个数字异或它自己都等于0!
但是问题又来了,数组里有两个不同的数字,假如是一个的话就可以直接得到结果,可是两个的话就是两个不相同的数字的异或的结果。
继续从这个结果入手,可以先找出这个异或结果的第一个1,这样就可以从数组中把这两个数分开,因为相同的两个数字同一位肯定是一样的,再将两组分别异或即可得答案。
代码如下:
阅读全文
0 0
- 算法复习:数组中只出现一次的数字
- 数组中只出现一次的数字[算法]
- 数组中只出现一次的数字[算法]
- C++ 算法之 数组中只出现一次的数字
- 算法:数组中只出现了一次的数字
- 算法题:数组中只出现一次的两个数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- 数组中只出现一次的数字
- nginx反向代理原理
- 详解Response、Request一
- 微信小程序中 input空间输入文字如何清空
- 自定义圆圈进度条
- Java经典算法40例(十)
- 算法复习:数组中只出现一次的数字
- c#基础知识扩展篇2
- 【程序员面试宝典】栈的应用
- 【阿柟碎碎念】暑期集训篇
- Android-手势-实现图片左右滑动效果
- PAT-1007. Maximum Subsequence Sum (25)
- 链表求和
- POJ 3091 Triangular N-Queens Problem 笔记
- xamarin android使用gps定位获取经纬度