分析问题 任何一个数字异或它自己都等于0,通过这个思想遍历数组,用一个result累计异或操作,如果遇到某一个数两次,必定消除了异或操作,换句话说就是如果我们从头依次异或数组中的每一个数字,那么最终的结果应该是那个只出现一次的数字 要想说的更明白一点不如举个例子 实例 比如int[] array={...
分类:
编程语言 时间:
2015-05-02 18:01:33
阅读次数:
198
转自:http://zhedahht.blog.163.com/题目:一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。分析:在博客http://zhedahht.blog.163.com/blog/static/2541117420071128950682...
分类:
编程语言 时间:
2015-03-10 22:57:20
阅读次数:
214
单调队列,顾名思义就是队中元素都是单调的队列,它们即可以是单调递增,也可以是单调递减的,单调队列有着重要的应用。 通过几道经典题目来熟悉单调队列: 1.集合 若一个数x在集合中,则2x+1,3x+1也在集合中,已知开始1在集合中,求集合第n大的数字。 分析:如果用朴素的方法对付不了很大的数据,可以....
分类:
其他好文 时间:
2015-03-07 13:54:57
阅读次数:
131
描述
计算2P-1的位数和最后500位数字
分析
有一个公式, 2^p 的位数是 p*lg2 以十为底 2 的对数. 证明 :
2p=10lg2p=10p?lg2 2^p = 10^{lg2^p} = 10^{p*lg2}
10^(p*lg2) 的位数是数 p*lg2 + 1位....
分类:
其他好文 时间:
2015-02-25 19:55:53
阅读次数:
117
1,直接地址法,线性函数值为哈希地址。2,数字分析法,关键字是以r为基的数,并且哈希表中可能出现的关键字是实现知道的,则可以取关键字的若干数位组成哈希表。3,平方取中法取关键字的平方后的中间几位为哈希地址。4,折叠法将关键字分割成位数相同的几个部分(最后一部分的位数可以不同),然后取这几部分的叠加和...
分类:
其他好文 时间:
2015-02-11 21:47:38
阅读次数:
177
1.Hash functions直接定址法:h(k)=ak+b.数字分析法平方取中法:去关键字平方后的中间几位为hash address.折叠法:将关键字分割成位数相同的几部分(最后一部分位数可以不同),然后取这几部分的叠加(去掉进位)和作为hash address.除留余数法:h(k)=k mod...
分类:
其他好文 时间:
2015-02-09 00:34:59
阅读次数:
213
题目:一个数组中有三个数字a、b、c只出现一次,其他数字都出现了两次。请找出三个只出现一次的数字。
分析:如果我们把数组中所有数字都异或起来,那最终的结果(记为x)就是a、b、c三个数字的异或结果(x=a^b^c)。其他出现了两次的数字在异或运算中相互抵消了。
我们可以证明异或的结果x不可能是a、b、c三个互不相同的数字中的任何一个。
由于x与a、b、c都各不相同,因此x^a、x...
分类:
编程语言 时间:
2014-12-24 20:10:52
阅读次数:
287
题目:从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J,Q,K分别为11,12,13,而大小王可以看成任意数字。分析:我们假定大小王为0,首先将数组排序,再统计数组中的0的个数,最后统计排序之后的数组中相邻数字之间的空缺总数。如..
分类:
其他好文 时间:
2014-12-10 14:27:09
阅读次数:
176
题目:输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出所有数字中的最小一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字321323.分析:最直接做法是先求出这个数组中所有数字的全排列,然后把每个排列拼起来,求拼起来数字最小的一个..
分类:
编程语言 时间:
2014-12-05 19:46:53
阅读次数:
207
问题:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。分析:试着从数学上分析出一些规律。首先定义最初的n个数字...
分类:
其他好文 时间:
2014-11-14 01:27:37
阅读次数:
154