2014年3月到6月找实习找了一堆,稍微总结下,自己备用以及分享给各位作为经验教训
简历总共投了百度,腾讯,阿里,盛大,百姓网,微软,deNa这7家
结果:
百度,盛大:简历偷完后石沉大海
腾讯:笔试挂了
DeNa:笔试挂了
阿里:算法工程师offer
百姓网:后端开发offer
微软:软件开发工程师offer
笔试情况:
腾讯:题目基本上是那种你会你秒答,你不会也没必要思考,选择题蒙个答案走人,不是选择题,想好了写满就行了,解答题一道关于云计算mapreduce,一道关于数据库的,1h30min的题目我30min做完就交了,不过最后挂了,企鹅真打脸T_T
阿里:相比腾讯,考察记忆类的题目要少些,考察实际运用的比较多,比如有两道估算题,一道是二分求快速幂,然后考察了一些细节,解答题依然有类似智力题的任务调度问题,两道大题,一道是二分让你找错误,是编程之美上的原问题,一个是要注意那个代码有可能陷入死循环,另外一个是要注意有可能mid = (l + r) >> 1这种写法有可能l+r会越界,需要改写成mid = l + (r-l)>>1,还有一道关于跳跃表的题目,跳跃表我考察看阿里之前几年题目的时候看到有道选择题考了这个数据结构,就考前把这个弄通了,各位觉得跳跃表是一种基于随机化思想的线段树,当随机因子p=1的时候可以理解为当数据足够大时其具有和线段树有等价的功效,这个数据结构的思想在于分层,而分层采用的机制是随机向上,然后高层稀疏,底层密集,而最底层是所有数据都有,拥有均摊分析O(lgN)的效率
DeNa: 笔试题巨水,这个是来我们学校宣讲会后直接开始的笔试,基础题较多,代码题1道阅读程序写结果,1道代码补全,代码补全是经典的八皇后问题,不是m67的那个位运算方法,就是简单的暴力搜索,然后综合题,一道是用链表的结构来大致解释贪吃蛇的实现以及实习表达式求值,这个最后基本确认不是我做的成绩不好,而是其实这一次这边根本不招技术类,非技术的题目就不谈了
百姓网:宣讲会后直接笔试,30min四道题目,第一道是设计一种算法求不规则图形面积,我是用蒙特卡罗算法来做的,其他高深的计算几何方法感觉不像是第一题的级别;第二题类似fbi的递推题(背景都一样,羊第一年怎么样,第二年怎么样,。。。然后好像第6年还是第5年死掉),不过个人感觉递推式不好拿,还是用迭代求比较方便;第三题问你for循环有哪些用途,这是我最不好答的问题,乱写写应付下就行了;第四题求m~n的乘积末尾0的个数,求2,5的因子数,取一个较小值即可;我们这边这场我似乎笔试还是最高分,真是运气
微软:第一题字符串模拟题,第二题组合数学题,第三题求逆序对,第四题很烦的模拟题,具体题目可以到微软hicode上找,第四题据说乱做还能拿不少,但我当时时间不多直接放了,12都满分,第三道输入数据有非法的,没有处理干净,最后270
面试:
首先所有的面试都让你自我介绍下,并且挑选你最成功的project来介绍下(最成功不谈,最好讲的)
百姓网:1.素数方面的一些问题,还写了个判断素数的代码
2.筛法求素数以及优化
3.推荐算法的设计(推荐好友,大规模数据下)
4.一个奇葩问题:超市里篮子放到电梯上为什么不会滑下去(到现在都不知道,问他也不说,然后跟其他同学讨论跟我的想法类似,就是下面有个钩子勾住凹槽)
(12是一面里的,34二面,其他一些聊天省略)
阿里:研发一面:上来面试官有点事,先打发我写一个快排(T_T),然后问了关于测试的问题,这个后来软工考试倒是考到了,然后问了C#,JAVA这些面向对象语言的一些特性,还问我有没有接触过COM(也是后来软工讲过的),一些基本的数据结构问题,妙答的题目。
算法一面:贝叶斯分类器原理以及几道概率论方面的题目,本来要做题的,临时变成了问我序是什么意思
算法二面:扯我自己做过的一些东西然后扯到的一个方面,是关于如何做一个比较不错的nba预测模型(我做过世萌的预测模型,但这个跟面试官讲不太合适,主要他不好理解)
微软:首先微软比较直接,基本就是算法题,闲聊比较少,然后完整代码要求写到白板上,另外微软几乎你每个代码写完,一可能会让你优化,二一般都要求你设计测试数据来测试你的代码。
一面:一个组里三个人轮流问了下
1.一道二叉树的题目,我的方法可以解决,但好像跟他的标准答案不同,跟他解释了很久,然后让我写了个四舍五入为核心功能块的代码
2.首先一道sql语句的题目,然后问了思路主要,毕竟我早忘了sql,然后是一道找规律的题目,最后发现其实就是一种特殊的四舍五入算法,然后让我写了下,写完写测试数据。
3.这是唯一一个让我英文自我介绍和问问题的,直接有点蒙了,然后题目就一道,复制一个有两个指针域,一个next,一个random(随机指向任意节点的域),然后让你复制一条链表,我最后优化完是用了hash,空间比较大,时间就是O(N),但真正的方法是映射后跳两次,然后拆掉映射边。
一面估计挂了后推到其他组的电话面试:主要讨论了我自己的project,然后由此拓展问了很多问题,估计看我临场反应以及知识的宽度吧。