找出数组中出现奇数次的元素
2013-09-15 21:59
363 查看
给定一个含有n个元素的整型数组a,其中只有一个元素出现奇数次,找出这个元素。
因为对于任意一个数k,有k ^ k = 0,k ^ 0 = k,所以将a中所有元素进行异或,那么个数为偶数的元素异或后都变成了0,只留下了个数为奇数的那个元素。
因为对于任意一个数k,有k ^ k = 0,k ^ 0 = k,所以将a中所有元素进行异或,那么个数为偶数的元素异或后都变成了0,只留下了个数为奇数的那个元素。
int FindElementWithOddCount(int *a, int n) { int r = a[0] ; for (int i = 1; i < n; ++i) { r ^= a[i] ; } return r ; }
相关文章推荐
- 如何找出数组中出现奇数次的元素
- 找出数组中出现奇数次的元素
- 如何找出数组中出现次数为奇数次的唯一元素
- [原]找出数组中出现奇数次的元素<异或的应用>
- 找出数组中出现奇数次的元素<异或的应用>
- 找出数组中出现奇数次的元素
- 由n个元素组成的数组,n-2个数出现了偶数次,两个数出现了奇数次,且这两个数不相等,如何用O(1)的空间复杂度,找出这两个数
- 【面试题】数组中有两个元素出现了奇数次,其他元素出现了偶数次。找出这两个元素
- 找出数组中出现奇数次的元素<异或的应用>
- 找出数组中出现奇数次的元素
- 一个数组中,除两个元素其余都出现了两次,找出这两个元素
- 互联网面试题:一个数组中找出三个出现奇数次的数字中的一个
- 用线性时间复杂度实现找出数组中出现一次的元素
- java找出一个数组中出现次数最多且最大的那个元素
- 找出数组中出现次数超过数组长度一半的元素—-腾讯
- 程序员面试题目总结--数组(五)【数组的后面m个数移动为前面m个数、列的前n项数据、判断整数x是否可以表示成n个连续正整数的和、数组中出现奇数次的元素、二维数组中的查找】
- 找出数组中出现次数超过一半或者超过1/3的元素
- N个元素的数组中找出出现多于N/2次的数(主元素)
- 算法之找出数组中出现次数大于n/m的元素
- 从有n个元素的数组中找出出现次数大于n/3次的元素