找出重复3遍的数
来源:互联网 发布:云计算和大数据 编辑:程序博客网 时间:2024/06/06 02:34
题目描述
在整型数组中,有一个数重复出现了3遍,其他数重复出现了2遍,找出这个重复3遍的数。要求用O(1)的空间和至多O(nlogn)的空间复杂度。
思路1
比较简单的思路就是用排序,符合题目要求的可以用堆排序,然后顺序扫描一遍就可以了,这里不再说明。
思路2
由于其他数都出现了偶数遍,我们需要的数出现了奇数遍,而出现偶数遍的数是我们不需要的,可以借助异或
的性质,即
- 两个相同的数异或为0
- 某个数异或0仍为子集
- 异或是满足交换律的
所以可以从头到尾把全部数异或一遍,最后得到的数一定是出现3遍的数。
以此纪念不长记性的脑子-,-
0 0
- 找出重复3遍的数
- 只遍历一遍 找出两个重复的数(将数组中各元素作为新数组的下标)
- 给定一个数输出它重复n遍的数
- 找出数组中重复的数
- 找出数组中唯一重复的数
- 从4300000000个中找出重复的数
- 找出数组中重复的数
- 数组有100个元素,设为数组a[100],存放1-100的数值,但是现在有一个数值重复了,只扫描一遍数组,找出那个重复的数
- 从n个数中找出每个数的重复数
- 找出数组{1,2,3,4,...N-1}中出现的唯一重复数
- 循环一次,找出数组中存在的所有重复数
- 找出一个数组中没重复出现过的数
- 找出数组中不重复的数并显示出来
- 找出数组中是否有重复的数
- 找出数组中重复次数最多的数
- 找出数组中重复次数最多的数
- 如何在数组中找出重复次数最多的数
- 找出数组中第一个重复出现的数
- 剑指offer面试题23-从上往下打印二叉树
- 深入理解 Java 虚拟机
- framework制作
- 【java】向上转型和向下转型
- ASCII码 功能码 使用
- 找出重复3遍的数
- Jquery Ajax WebService
- 离职之后社保怎么办
- 数组非数字键名引号的必要性
- C++中拷贝构造函数
- poj 1995 快速幂二进制取模算法
- HDOJ1230 火星A+B
- Mac上HAX is not installed on this machine 的解决办法
- 8.2.1.8 IS NULL Optimization IS NULL 优化 (索引不存储NULL值)