微软实习面经

开学前罩罩突然和我说他们大组刚好要招实习生,问要不要给我内推一下,我说“这肯定的啊”,正好想找你内推呢。。。。。


然后感谢罩罩帮我修改了一下简历(主要是英文太渣。。。)


然后投了简历三天内毫无动静。。。。。


然后我安慰自己说:这三天有两天是双休日!他们都不上班好吧。。。。。


嗯,然后第四天,也就是礼拜一收到一位微软工程师(也就是我的mentor)的邮件,来约电面时间。。。


想了想,约在两天之后了,这样我好做些准备。。。(事实再次证明,临时抱佛脚是没用的。。。)


准备期间,把中英文自我介绍,中英文项目介绍都写了下来,并且电面之前打印了出来(事实证明我这点小把戏根本就没用。。。)


并且google了一把“微软面经”,把前几页能搜到的都看了一遍(也没用。。。)




嗯,然后就是正式电面了。。。


连个自我介绍都没有,直接是面试官发问。。。


你是清华大学哪个专业的?软件工程。。。本科也是清华大学?不是,东南大学。本科啥专业?也是软件工程。。。。


你在xx项目中负责什么部分?负责客户端部分,主要有最短路径的计算和无线传感器的定位计算。。。


你用什么来计算最短路径的?floyd算法。。。


简单介绍一下?主要是dp思想,如果u到v的距离大于u到k和k到v的距离之和,就令他等于后者。。。


复杂度咋样?n的三次。。。


如果n比较大,怎么改进?选floyd是因为实现简单,并且我们的n只有几百,还可以接受。。。算法课上有n2logn的,不过挺复杂,记不清了。。。


你们项目用了多线程么?没有。。。


你知道多线程怎么实现同步么?锁。。。


那多进程呢?信号,信号量,管道机制。。。(面完后才发现我答的是多进程的通信机制,而不是同步机制,太2.。。。)


了解虚函数吗?了解一点点。。。


说说虚函数是怎么实现的?每个对象有一个指针指向虚函数表,虚函数表中存着真正应该调用的函数的地址。。。。


我看你简历上说在学机器学习,说一下怎么推荐好友?我说我没学过有针对性的推荐算法,我能想到的就是根据共同好友来推荐。遍历所有人,计算共同好友,排序,推荐


计算共同好友是不是拿一个人的每一个好友和另一个人的每一个好友一一比较?当然不是,复杂度太高,因为只要计算共同好友的个数,让我实现我会用set,a的好友为seta,b的好友为setb,然后a,b的好友都放到一个set中为setc,共同好友的个数就是seta.size()+setb.size()-setc.size().


你知道c++中的set是怎么实现的么?红黑树。。。(好在上学期看过《stl源码剖析》)


简单介绍下红黑树?balabala....什么红节点下面只能是黑节点,什么每条路径上的黑节点个数相同。。。。


为什么选红黑树,而不是其他平衡树?balabala.....可能在查询,修改效率上更高点。。。。


c++有提供set交并的一些操作吗?我说应该是有的,我在《stl源码剖析》里面看到过,但不是100%确定,万一没有,这个问题我可以用hash表来做,然后说了一下hash表怎么实现
(后来想想stl都给你提供set这个数据结构了,怎么可能不提供它的相关操作!真是太2了。。。)


那你这样复杂度是多少?如果两个好友的好友数都是n来表示的话,那么复杂度为O(n)


嗯,好,如果给你offer,你什么时候可以来入职?随时可以。。。(听到这句话真是开心啊。。。这样回答是不是不够矜持?)


好,今天就先简单聊到这边。。。好谢谢您。




挂掉电话,发现才面了20分钟,真是我遇到的最短的一个面试了,略奇葩。。。。


第二天直接hr打电话过来恭喜我拿到offer了。。。真是感动!


最后吐槽下大微软的part-time intern 的待遇真是低的一米(后两个月机智的转全职了=,=)。。。。。。(怎么说我也研究生了啊,居然只有本科实习的一半。。。好怀念NI实习的日子。。。)




今天3个月满,干完滚粗了。。。

你可能感兴趣的:(实习,微软)