各互联网名企面试题汇总(3)

1.迅雷2016研发工程师笔试题(归并排序)

将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是(D)

A:2n

B:2n-1

C:n-1

D:n

解释:假设一张表的数字全部比另外一张表的最小数字小,则第一张表全部数字(n)与第二张表第一个数字对比,所以次数为n

2.京东2017校园招聘笔试真题(希尔排序)

对关键字{10,20,8,25,35,6,18,30,5,15,28}序列进行希尔排序,取增量d =5时,排序结果为(A )

A:{6,18,8,5,15,10,20,30,25,35,28}

B:{10,18,8,5,15,6,20,30,25,35,28}

C:{10,20,8,5,15,6,18,30,25,35,28}

D:{10,20,30,5,8,6,15,18,25,28,35}

解释:希尔排序,也叫做缩小增量排序,基本思想:设定一个元素间隔增量gap,将参加排序的序列按这个间隔数gap从第一个元素开始依次分成若干个子序列。在子序列中采用其他排序方法,然后缩小增量gap,重新将整个序列按照新的间隔数gap进行划分,在分别对每个子序列进行排序,直到间隔数为1.

初始序列为:{10,20,8,25,35,6,18,30,5,15,28}

取增量为5:

   子序列1:{10,                 6,                 28}

   子序列2:{      20,               18}

   子序列3:{           8,                 30}

   子序列4:{              25,                 5}

   子序列5:{                 35,                15}

所以结果为: {6,18,8,5,15,10,20,30,25,35,28}   所以选择:A

3.2016年今日头条校招笔试题(调度算法)

有三个程序J1,J2,J3。程序在单核CPU执行时,三个程序需要的资源如下所示:

优先级高的程序可以抢占优先级低的程序的CPU,但不能抢占IO。问当所有任务执行完时,共消耗的时间是多少?(B)

A:170ms

B:130ms

C:120ms

D:160ms

解释:具体操作如下:

      1.    初始时:J1和J2一起运行,J1占CPU(40ms), J2占IO(50ms) , J3未运行
      2.  40ms时:J1释放CPU,等IO, J2未使用完IO,所以CPU空闲,此时让J3使用CPU。
      3.  50ms时:J1占用到IO, J2从J3中抢走CPU,使用20ms。 此时J3已经使用CPU(50-40=10ms)
      4.  70ms时:J2使用完CPU,J2结束。J3可以使用CPU,
      5.  90ms时:J3使用完CPU(90-70=20ms),J3等待IO
      6. 110ms时:J1才刚刚使用完IO,释放,J1结束。 J3得到IO。
      7. 130ms时:J3使用完IO。J3结束    所以选:B

4.2016CVTE校招在线笔试题(图的邻接表)

已知图的邻接表如下所示,根据算法,则从节点0出发按广度优先遍历的节点序列是(C)

A:0  1  2  3

B:0  1  3  2

C:0  3  2  1

D:0  3  1  2

解释:

先看深度优先:是从某个顶点出发,访问完后,寻找一个未访问的邻接顶点继续深度优先,如果此路不同就往回退,所以看邻接表,首先访问V0,完了后顺链寻找没有访问的邻接顶点,自然链表中的第一个结点就是v3,接着转到v3再来深度优先,访问v3后,在其链表中第一个邻接顶点是v2,接着访问v2,下面走不通,回到v3,继续顺链往后,下面路不通,回到v0,v0的邻接顶点中v1还没有访问所以序列为v0, v3, v2, v1
再看广度优先:从某个顶点完成后,需要一口气将其邻接未访问的所有顶点都访问,后面类推于是过程是先v0,再顺链将v3,v2,v1依次访问完,访问结束,所以最后访问序列为v0, v3, v2, v1

该题比较特殊,深度和广度结果相同,选择:C

5.2016CVTE校招在线笔试题(拓补序列)

已知有向图G=(V,E)其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V2,V6>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}则G的拓扑序列是:(BC)

A. V1, V4,V2,V6, V3,V5,V7

B. V1,V2,V3,V4, V5,V6,V7

C. V1,V3, V4,V2,V6,V5,V7

D. V1,V3,V4, V6,V2, V5,V7

解释:画出G=(V,E)对应的图:

显然根据拓扑序列的要求:

    V1在V2,V3,V4前面    

    V2,V3均在V5,V6前面    

    V4在V6前面

    V5,V6均在V7前面

满足要求的有:BC

6.京东2017校园招聘笔试题(分块查找)

在分块查找中,若索引表各块内均用顺序查找,则有324个元素线性表若分成9块,其平均查找长度为( C)

A. 19

B. 18

C. 23.5

D. 33.5

解释:324个元素分成9块,每块对应36个元素

块间 ASL = (9+1)/2 = 5

块内顺序查找: ASL = (36+1)/ 2 = 18.5

所以总的ASL= 5+18.5 = 23.5    选:C

 7.百度地图2016校招笔试题(哈夫曼树)

对n(n大于等于2)个权值均不相同的字符构成哈夫曼树,关于该树的叙述中,正确的是(ACD)

A.  树中一定没有度为1的结点

B.  该树一定是一棵完全二叉树

C.  树种任一非叶结点的权值一定不小于下一任一结点的权值

D.  树中两个权值最小的结点一定是兄弟结点

解释:哈夫曼树定义:在以n个权值{ w1, w2, …, wn } 为n个叶子结点权值所构造的所有二叉树中,WPL最小的二叉树。

构造哈夫曼树可以按下面步骤构建:

  1,将所有左,右子树都为空的作为根节点。

  2,在森林中选出两棵根节点的权值最小的树作为一棵新树的左,右子树,且置新树的附加根节点的权值为其左,右子树上根节点的权值之和。注意,左子树的权值应小于右子树的权值。

  3,从森林中删除这两棵树,同时把新树加入到森林中。

  4,重复2,3步骤,直到森林中只有一棵树为止,此树便是哈夫曼树。

选项A,显然是正确的;选项B:n=3时就不是完全二叉树;选项C:非叶结点的权值为两个孩子的权值之和,权值应该表示的是概率,那么都是正的,故一定不小于。选项D:由哈夫曼树的构造方法显然。所以,选择:ACD

8.Google 2012 笔试题(树)

一个有n个结点的连通图的生成树是原图的最小连通子图,且包含原图中所有n个结点,并且有保持图联通的最少的边。最大生成树就是权和最大生成树,现在给出一个无向带权图的邻接矩阵,权为0表示没有边。

 {{0,4,5,0,3},

    {4,0,4,2,3},

    {5,4,0,2,0},

    {0,2,2,0,1},

    {3,3,0,1,0}},

求这个图的最大生成树的权和?(D)

A. 11

B. 12

C. 13

D. 14

E. 15

解释:根据题意,可画出如下图:右边为邻接矩阵对应的无向图;左边对应生成的最大生成树

所以对应的最大权和为:5+4+3+2=14,选:D

9.阿里巴巴2015基础平台研发工程师实习生笔试题(二叉树)

一个具有513个节点的二叉树,有(C)种可能的层高。

A. 513

B. 512

C. 504

D. 503

E. 2

F. 1

 解释:最高是每层一个结点,有513层;

       最低是完全二叉树情况,9层最多有(2^9-1)=511<513,所以最少为10层。

所以从10到513共有513-10+1=504种情况。选:C

10.Google2012笔试(连通树)

一棵树(>=3个节点)最少需要删掉几个节点才能使得这棵树不连通?(B)

A. 0

B. 1

C. 2

D. 3

解释:树:连通,无环。一个顶点要到达另一顶点,有且仅有一条路径。所以只要删除任一条边即可。 不过题目要的是删除顶点,那么就删除那些内顶点(以及他们连着的所有边),也就是非叶子节点。选:B

11. 2016年360校招笔试题(二叉搜索树)

在含有50个结点的二叉排序树上,查找关键字为20的结点,则依次比较的关键字有可能是(D)

A. 15、35、18、14、20

B. 35、25、28、15、20

C. 35、25、18、15、20

D. 15、35、25、20

解释:结题思路如下图:原则是:排序二叉树特点:左子树上所有结点的值均小于它的根结点的值; 右子树上所有结点的值均大于它的根结点的值.若值比根节点大,往左点查找;若值比根结点小,往右查找。

所以:选择:D

12.网易有道2017内推笔试题(循环队列)

大小为MAX的循环队列中,f为当前队头元素位置,r为当前队尾元素位置(最后一个元素的位置),则任意时刻,队列中的元素个数为()

A. r-f

B. (r-f+MAX+1)%MAX

C. r-f+1

D. (r-f+MAX)%MAX

解释:在普通队列中,若队首为head, 队尾为tail的条件下,队内元素个数为tail-head+1 所以 循环队列元素个数为(tail-head+1+MAX)%MAX 选B

 13.阿里巴巴研发工程师实习生笔试题(猜数字)

A,B,C三位同学都是很聪明的同学,面试官给他们背上依次贴上了数字2,4,8,他们都能看见别人的数字但无法看见自己的数字,现在面试官告诉他们这些数字都是自然数并且构成一个等比数列,让A、B、C同学依次循环回答是否确定自己的数字是多少,每位同学的回答算作一次,经过__3__次有同学能准确说出自己的数字。(B)

A. 2

B. 3

C. 4

D. 5

E. 6

F. 7

解释:A看到的是4,8所以A有两种可能2或16,A不确定

        B看到的是2,8所以在A不确定的时候,B有两种可能4或32,B不确定

        C看到的是2,4所以C有两种可能1或8,但是当C是1的时候,B看到的是1,2这样B肯定能确定自己是4,所以C不是1,C是8,C确定

所以需要3次,选择:B

 个人能力有限,欢迎各位博友批评指正!!!

 

posted @ 2017-03-07 11:32  walanwalan  阅读(1103)  评论(0编辑  收藏  举报