【算法题】找出且仅有的出现了奇数次的一个数
2016-09-19 05:00
260 查看
题目
给你n个数,其中有且仅有一个数出现了奇数次,其余的数都出现了偶数次。用线性时间常数空间找出出现了奇数次的那一个数。解题思路
关键字:异或
从头到尾异或一遍,最后得到的那个数就是出现了奇数次的数。因为,两次异或同一个数,结果不变,且异或运算满足交换律。
代码
略相关文章推荐
- 一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1
- 现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
- 现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
- 整数数组中,每个元素均出现两次,除了一个元素例外,如何找出这个元素?能否设计一个线性时间的算法,且不需要额外的存储空间?
- 在一个整型数组中有一个元素的出现次数超过了数组长度的一半,试设计一个 在时间上尽可能高效的算法,找出这个元素。
- 【算法题】找出两个只出现奇数次的数字
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 给定一个单向链表(长度未知),请设计一个既节省时间又节省空间的算法来找出该链表中的倒数第m个元素。实现这个算法,并为可能出现的特例情况安排好处理措施。“倒数第m个元素”是这样规定的:当m=0时,链表的
- 有一个排好序的数列,数列中只有一个数只出现1次,其余每个数均出现了两次,设计出一个算法,找出那个只出现了一次的数
- n个数中有且仅有一个数出现了奇数次
- 一个简单的实现找出数组中一个数字出现次数最多的数字的算法
- 现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
- 现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
- n个数中有且仅有一个数出现了奇数次
- 已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
- 互联网面试题:一个数组中找出三个出现奇数次的数字中的一个
- 一个简单的算法---实现找出数组中一个数字出现次数最多的数字
- 已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数
- 已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。
- 现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。