2014-04-21-阿里巴巴暑期实习-后台研发-二面经验
周一面试第一个,9点50开始,持续了1个小时左右,两个面试官,一个HR,一个技术。
整个面试大致分为三个部分:20分钟聊项目,20分钟研究了一道题,20分钟HR扯
一、根据简历问项目,问的特别细致,先是自己介绍项目,然后他挑感兴趣的问你在其中做了什么,怎么解决问题的。其中还夹杂着一些知识的迁移,比如,问了我Linux用户态到内核态有哪些开销?优化代码过程具体你是怎么实现的?
二、题目:CacheKey-Value设计题,有一个1G的Cache缓存,里面存的是键值对,有一定的淘汰准则,问用什么样的数据结构来实现它的get()和put()操作
我开始说用Hash保证O(1)的查找效率,后来又想用排序(显然复杂度太高,面试官皱眉),他提示说最近get的热度就会最高,我想到了队列,后来总算说出了双向链表,最后写了个双向链表删除一个节点的代码。
回来网上一搜有类似的题目http://oj.leetcode.com/problems/lru-cache/
正解Hash+双向链表
三、HR问题:
1、家乡哪里,对以后工作地点有没期望?
2、自己未来职业规划,为什么选阿里实习?
3、你了解的阿里是什么样的,为了来阿里,做过哪些准备?
4、工作&学习中,有没有崇拜的人
5、自己优缺点有哪些?
6、特长爱好之类的
2014-04-17-网易有道-研发类-笔试题
一套卷子,共10道小题,3道编程大题
一、填空&选择
1、选择:给了一个递归求Fibonacci的代码,问算法复杂度
2、选择:忘记了,应该不难
3、选择:给你52张除掉大小王的扑克,任意抽取8张,求和,问下列哪个答案的概率最大
4、填空:著名的蒲丰投针概率问题,在一个平面上有无线条间距为H的平行线,一根针长度为h(H>h),投掷这根针,使之落在平面上,问,针与线有交点的概率
5、填空:一棵树,n1个节点度为1,n2个节点度为2,...,nk个节点度为k,求叶子节点个数
6、选择:指针跟引用的用法问题
7、选择:C++和Java中虚函数的区别
8、填空:给了一段递归代码的函数,求算法复杂度
9、填空:a,b,c,三个数均匀分布在(0,1)之间,求a+b+c之和在(0,1)的概率
10、填空:三个人按顺序射击比赛,各自有各自的概率命中(已知的概率),有人命中比赛即结束,问第三个人获胜的概率
二、编程题
1、实现两个整数的求和,整数存在单链表之中,整数的高位数字存在头结点,以此类推,返回一个链表
2、实现next_permutation的函数,即下一字典序列。输入输出都是string
3、给一个矩阵A(5*5),一个整数n,求A^n的每个元素模13的值,返回一个5*5矩阵