阿里实习生招聘笔试题目

 

分类: 数学 算法 C++ 编程语言

题目:

 

第一题选C,不解释吧,按位与就行

 

第二题选D,不解释,2*3*sizeof(int*)=48(64位机器上是8字节一个指针)

 

第三题选C,我不确定,不过,应该是的

 

第四题选D,明显考的是补码

 

第5题选D,果断访问错误(这是Java的代码)

 

第6题选B,大家都懂

 

第7题果断A啊

 

第8题果断是B,不解释,大家懂

 

第9题是B,’0’不是’\0’,这个要注意

 

第10题果断是Fibonacci,显然是C,前几个是0,1,2,3,5,8,13,21

 

第11题选C,计算量是2^35*2^4,现在计算机的主频是2^30,所以差不多是几分钟的事,在这里我们假设一个递归调用的指令条数是16(push,pop,ret等)

楼主虽然算出来这个结果,当时还选了几秒种,回来仔细一想,这个几秒钟秒得有点远,二逼了

 

第12题是B,显然有n=4N1+3N3+2N2+N1+1=N4+n3+n2+n1,所以N0=82,不解释

 

第13题果断是D,这个老题目了,不解释

 

第14题是C,二分查找嘛,大家都会,不解释

 

第15题是Fulkerson算法,算出来是46,每一次选一个增广路径即可,直接选不出来为止

 

第16题选85,他给出了别人65块的东西和20块钱,应该亏损85块(楼主二了,还加了个100,结果果断错)

 

第17题是2,不解释Fermart小定理,2^6 mod 7= 1,所以2^100=2^4=16=2 mod 7

 

第18题,我觉得是B,不知道对不对,这个不会

 

第19题,算得不太精细,选了A,不确定。

感觉题目我没读清楚,现在还是仍然不会这个题目

 

第20题C,概率与级数运算,不解释

 

第21题,果断B,D,malloc,new申请到的是Virtual Memory,不过,windows里面还真可以申请到物理内存,用的是VirtualAllocEx API即可

 

第22题CD

楼主选了B,C,B主要是没看清题目意思,题目说了二叉搜索树,操蛋,D的话是正确的,可以在常数时间内变成平衡二叉树,因为可以在常数时间里面变成一个有序链表,把一个有序列连链表变成一个平衡树是常数时间吧(递归)

 

第23题,其实就是解10^15<=n^14<10^16,解出12<=n<= 13,所以选14,15(我是推出n<10^(8/7)然后算出n<=13,

楼主选了DE,A没选,主要是忘记了还有左边的一个式子,二啊,血的教训

 

第24题,D,因为选出第一个是白的,所以位于A的概率是2/3

这 个题目有争议,在此不解释了

 

第25,不可能,需要2.8*10^8 bit,而蓝牙只能传2.4*10^7bit所以一帧需要0.2S

 

第26题(mnlogn)不解释,归并而已

 

第27题显然是17分钟

1、2先过河,然后1回来,5、10过河,2回来,1、2过河 

时间:2+1+10+2+2=17,不解释,读者可以考虑n个人过河的问题,其实原理一样的哦

 

第28,错两个地方1,没考虑只有一个数,2,可能死循环(给你数组0,2,3让查找1)

楼主两个都想到了,写的时候忘记了写1,悲剧

 

第29题,果断SkipList,地球人懂的O(PLogpN)

注意SkioList从上向下查找,一层的查找时间是O(p),共LogpN层,所以总时间是O(PlogpN)

posted @ 2014-11-17 13:17  九八八五  阅读(695)  评论(2编辑  收藏  举报