2014年3月到6月找实习找了一堆,稍微总结下,本身备用以及分享给各位做为经验教训面试
简历总共投了百度,腾讯,阿里,盛大,百姓网,微软,deNa这7家算法
结果:sql
百度,盛大:简历偷完后石沉大海数据库
腾讯:笔试挂了编程
DeNa:笔试挂了后端
阿里:算法工程师offer数据结构
百姓网:后端开发offerdom
微软:软件开发工程师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,而后由此拓展问了不少问题,估计看我临场反应以及知识的宽度吧。