微软实习面经

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


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




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

。。

。。


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




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

。。


想了想,约在两天之后了,这样我好做些准备。。。

(事实再次证明。暂时抱佛脚是无用的。。。




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

。。




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

。)




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


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


你是清华大学哪个专业的?软件project。。。

本科也是清华大学?不是。东南大学。本科啥专业?也是软件project。

。。。




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


你用什么来计算最短路径的?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个月满。干完滚粗了。。

原文地址:https://www.cnblogs.com/zhchoutai/p/7091590.html