【面试真题】给定长度为n的数组,内部有n-2个整数出现了偶数次,和2个只出现奇数次的整数,找到这两个数
来源:互联网 发布:乔杉和修睿演的网络剧 编辑:程序博客网 时间:2024/06/06 00:16
这是一道网络上流传的微软电面的真题,题目内容已经讲述在标题:在O(1)的内存上,找到这两个只出现奇数次的整数。
解决的主要方法是使用异或运算,我们知道异或的性质有:1)a^a=0;2)0^b=b;因此,当数组中所有的数字都互相做异或的时候,那么最后得到的结果,其实就是这两个只出现奇数次的整数异或后的结果。我们假设这个结果为001001。
首先因为这两个数肯定不相等,所以结果中总会有1的存在。
其次就是,1的出现是因为我们的这两个数在特定数位是肯定不相等的,就好比001001,就暗示着,我们的两个数里,只有一个数它的二进制表示的末位是1。根据这一点,我们可以从所有的数中,筛选出这个特定的数。然后通过异或结果,我们可以求解出另外一个数的值。
0 0
- 【面试真题】给定长度为n的数组,内部有n-2个整数出现了偶数次,和2个只出现奇数次的整数,找到这两个数
- 一个数组存放了2n+1个整数,其中有n个数出现了2次,1个数出现了1次,找出出现1次的数是多少?
- 给出N个正整数,其中只有一个数出现了奇数次,其余的数都出现偶数次。求那个出现了奇数次的数。1<=N<=1000,N肯定是奇数。所有出现的整数都不超过1000。
- 218 N个数出现了偶数次,2个数出现了奇数次,找出这两个数
- 长度为n的数组,有一个数m重复出现了n/2+1次,找出这个数
- 有N个数,其中2个数出现了奇数次(这两个数不相等),其他数都出现偶数次,问用O(1)的空间复杂度,找出这两个数,不需要知道具体位置,只需要知道这两个值。
- 数组配对 给定N个整数,N为偶数,是否能找到N/2对,使得每对和能被K整除。注意:每个元素只能出现在一个配对中。public class num9 { public boolean checkP
- 在其他数都出现偶数次的数组中找到出现奇数次的数
- N个元素的数组中找出出现多于N/2次的数(主元素)
- 计算二进制整数中有多少个1 判断是否为2的n次幂
- 某数组中两个数出现奇数次,剩余的出现偶数次,找出这两个数
- 程序员面试题目总结--数组(五)【数组的后面m个数移动为前面m个数、列的前n项数据、判断整数x是否可以表示成n个连续正整数的和、数组中出现奇数次的元素、二维数组中的查找】
- 现在有N个数字,其中只有一个数字出现的次数是奇数次,如何找到这个数字?
- java算法6~在其他数都出现偶数次的数组中找到出现奇数次的数
- 位运算---在其他数都出现偶数次的数组中找到出现奇数次的数
- 解决给定一个含有n个元素的整型数组a例如{1,1,1,2,4,3,3} ,如果某些元素出现 *的次数为奇数次,则将其输出:例如1,2,4
- 2个出现奇数次的数字
- 题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。(google面试题) 例如 输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。 分析
- QT之数据库
- 第五届校内选拔javaB组-第二道题调和级数
- jQuery ajax读取本地json文件以及跨域问题
- sed编辑器简单使用(1)
- springmvc4开发学习(第二讲)
- 【面试真题】给定长度为n的数组,内部有n-2个整数出现了偶数次,和2个只出现奇数次的整数,找到这两个数
- Faas,又一个未来?
- JS实现浏览器打印、打印预览
- rails路由(2)
- 产品开发术语
- ABP入门系列(11)——编写单元测试
- JavaScript对象表示法(JSON)
- 自动调光测试
- 7 标准IO之fgets/fputs