阿里巴巴笔试题总结

1.一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点__99__。


2.如图所示,从A点发出一束激光,于AD直线和CD直线反射多次后,垂直达到了B点(B点可能在AD上也可能在CD上,入射角等于反射角),如角CDA=8°,那么最多反射次数是_10___。(从B点原路反射回点A次数不纳入计算,图中给出3次反射的例子)

解析:

如上图所示,以最后一次反射来看,

1)由反射原理可知,角DBC的平分线与AB垂直,则可得到平分线与BC的夹角为α,从而角DBC为2α;

2)同理知角BDC和角DBC互余,而角EDB的平分线与DC垂直,因此可得倒数第二次反射的夹角为2α;

3)同理亦可向前不断推进,则若输入角度为α的整数倍,则可以实现最后一次折射正好与一边垂直,

     而由于输入光线必须保证向右传播,则角度范围为(0,90),而α=8,90/α=11,

     由题意知,题目图中4α算3此反射,则11α算10次反射。

综上,答案为10。


3.对一棵二叉树进行后续遍历,其输出结果为 A, B, C,这样的二叉树有____棵。


4.下面数据结构能够支持随机的插入和删除操作、并具有较好的性能的是____。
A.数组和链表
B.链表和哈希表
C.哈希表和队列
D.队列和堆栈
E.堆栈和双向队列
F.双向队列和数组


5。在如下8*6的矩阵中,请计算从A移动到B一共有____种走法。要求每次只能向上或向右移动一格,并且不能经过P。

A.456
B.492
C.568
D.626
E.680
F.702

解析:

8*6的矩阵,从左下角A到右上角B,一共需要走12步,其中5步向上,7步向右,因此总的走法一共有C(12,5)=792种,但题目规定不能经过P,因此需要减去经过P点的走法。

经过P的路径分为两部分,从A到P,从P到B。

同理,从A到P的走法:C(6,2)=15;

同理,从P到B的走法:C(6,3)=20;

因此从A到B经过P点的走法有15*20=300种,

所以从A到B不经过P点的走法有792-300=492种。


6.现有 1G 数据需要排序,计算资源只有 1G 内存可用,下列排序方法中最可能出现性能问题的是____。

A.堆排序
B.插入排序
C.归并排序
D.快速排序
E.选择排序
F.冒泡排序
解析:

归并排序因为需保存中间结果,需要额外辅助空间多,所以此处容易出问题


7.凯撒(Caesar)密码是一种基于字符替换的对称式加密方法,它是通过对 26 个英文字母循环移位和替换来进行编码的。设待加密的消息为"Alibaba Group",加密后的密文是"RCzsrsr XIFLG",则采用的密匙 k 是____。
A.10
B.11
C.13
D.15
E.17

解析:

首先,根据题意---------凯撒(Caesar)密码是一种基于字符替换的对称式加密方法,它是通过对26个英文字母循环移位替换来进行编码的。

 

所以大概就可以猜得到就是对字母进行移位或者替换。

 

然后就是要证明我们的猜想是否正确。

 

待加密的消息为"Alibaba Group",加密后的密文是"RCzsrsr XIFLG",

 

根据26个字母进行编号:可知两个编号的差是17,  而且都完全符合这个17的移位差。

 

则采用的密匙k是17


8.

一台机器对 200 个单词进行排序花了 200 秒(使用冒泡排序),那么花费 800 秒,大概可以对多少个单词进行排序

A.400
B.500
C.600
D.700
E.800
F.900
解析:

n的数据量,时间复杂度是O(n^2),200单词是200秒

2n的数据量时间复杂度是2^2O(n),400单词是800秒

答案应该是400个单词


9.设一棵二叉树有 3 个叶子节点,有 8 个度为 1 的节点,则该二叉树中总的节点数为______。
正确答案: B 你的答案: 空 (错误)
A.12
B.13
C.14
D.15
E.16
F.17

解析:

设度为0,为1,为2的节点分别有N0,N1,N2.则有以下等式

N0+N1+N2=1*N1+2*N2+1

解方程,得 N0=N2+1,题中说N0=3,则N2=2;

故N0+N1+N2=2+3+8=13


10.由权值分别为 1、 12、 13、 4、 8 的叶子节点生成一颗哈夫曼树,它的带权路径长度为()
A.12
B.68
C.43
D.6
E.25
F.81

解析:

Hoffman树如下:

        38

 *13          25

          *12      13

                   5      *8

              *1     *4      

其中带*为原始元素,总共4层(不算根节点) 带权路径长度 13*1 + 12*2 + 8*3 + (1+4)*4 = 81


11.设有三个元素 A、 B、 C、 D 顺序进栈,在进栈过程中可以出栈,出栈次序错误的排列是
正确答案: F 你的答案: 空 (错误)
A.ABCD
B.DCBA
C.ACBD
D.BCDA
E.ACDB
F.DCAB


12.同一个进程中的线程不共享的部分是()
A.信号
B.堆
C.文件描述符
D.进程组 id
E.代码段
F.栈空间


13.对 N 个数进行排序,在各自最优条件下以下算法复杂度最低的是()
正确答案: D 你的答案: 空 (错误)
A.快速排序
B.堆排序
C.冒泡排序
D.插入排序
E.选择排序
F.归并排序


14.下面哪个不是线性表?
A.循环链表
B.队列
C.栈
D.关联数组
E.空字符串数组
F.双向链表


15.下面的哪种排序算法在算复杂度平均不是 O(nlogn)的?
A.快速排序
B.桶排序
C.合并排序
D.二叉树排序树排序
E.堆排序


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凤凰AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值