最新的阿里云面试题(java无线)
面试题分2部分 10题选择 7题简答 60分钟 个人觉得在这个时间做好很困难
选择题大多考的java的基础题就不多说了,看后面的简答吧
1.某国家的家庭都喜欢生男孩,而且一个家庭直到生有男孩为止,否则继续生小孩,
该国当前的男女均衡,问若干年后该国家的男女比例的趋势?
2.有一个Hashmap<String,String> a 对一个给定的value = 12,遍历该Hashmap,找到该key,
并打印出对应的key,value?
(比较简单,不多说)
3.创建3个线程,1个启动线程(main),一个线程负责向List中添加数据,1个线程负责取出数据
用代码描述出来?
(简单的生产者和消费者问题,网上很多)
4.有这样的一个2叉树 ,结构如
class BinaryNode{
int data;
BinaryNode mLeft;
BinaryNode mRight;
}
给定一个整数和一棵2叉树,从根节点开始遍历,直到叶节点止,要求打印出所经过的所有节点的data
值累加等于该整数,如给出22,输出 10 12;10 5 7 ;
函数名为 void printBinaryTree(BinaryNode root,int num)
(不知是否描述清楚,当时没做,期待大家的答案)
5.对于一个已经排好序的数组a,给定一个数X,判断该数组中是否存在2个数的和等于X
要求时间复杂度为0(n);
我的答案 (数组按升序)
int i = 0; int j = a.length;
int temp ;
while(i != j){
temp = a[i] + q[j];
if(temp == X){
System.out.println("存在这样2个数 :"+num[i]+num[j]);
break;
}else if(temp > X){
j--;
}else if(temp <X){
i++;
}
if(temp != X){
System.out.println("不存在这样2个数");
}
}
6.一栋楼房的底层有101根电线,一直延伸到顶层;但是不直到顶层的线头跟底层的线头是否是一根电线。现在有一些灯泡和若干短线,只上下楼一次,怎样能够把这些线分清楚;
7.有一个电子书阅读器,如下功能:
1)能网上下载电子书
2)打开各种格式的文本(txt,doc,pdf)
3)。。。。(不记得了)
让你设计这个阅读器,怎样保证他的可扩展性和复用性,用UML图和一些描述;
ps:60分钟做这些感觉很困难,做的很差,不过还是收到一面,开始面试官问了一些数据结构,java相关的还好回答,
结果面试官看到我们是一个专业的(信息与计算科学),顿时悲剧了,先是一个话概括一下微积分。。。,微积分的可积条件...., 黎曼微积分,顿时hold不住了 ,在学校都是快考试的时候突击一下你懂的 这些早忘记了 然后,没然后了
------解决方案--------------------1 相同(前提是不打胎)
------解决方案--------------------高数我也hold不住...悲哀啊.
------解决方案--------------------6题怎么算分清楚 是要一个一个都标号么 .感觉这题还挺有扩展性的不全是代码啊
------解决方案--------------------6.一栋楼房的底层有101根电线,一直延伸到顶层;但是不直到顶层的线头跟底层的线头是否是一根电线。现在有一些灯泡和若干短线,只上下楼一次,怎样能够把这些线分清楚;
把楼顶的线头用短线全部连接起来,下楼后,任意两个线头接电池和灯泡,如果亮,就说明这两个线是连到楼顶的,找到第一对连接到楼顶的线估计比较费时,然后,用其中一根和其他的线头用同样的方法测试是否灯亮,亮的,说明测试的线连到楼顶,不亮,说明没有连到楼顶,后面这步就很快了........