秋招微软面经
微软一直都是dream company,也是从腾讯实习回来后投的第一家公司,最终也是秋招第一家给我发offer的公司。
Timeline
投递简历:2021-09-09
直接官网 投就好了,简历过了之后就会安排笔试。
收到笔试邮件:2021-09-10
之后会收到正式笔试邮件,给了3天的时间,可以选择任意一天一次性完成笔试即可。(笔试题目全英文,难度不大,大概是Leetcode medium难度吧)
面试:
我九月底就接到HR沟通面试的电话,但是一直没有收到面试相关的邮件。当时以为就这样挂了,呜呜呜。
但是10月18号的时候又收到微软的邮件(如下图)。兴奋之心难以言喻(能让我面试就很感激了)。
给大家一点小tips:如果有接到HR电话,但是没有收到面试邮件的话,可以打HR打过来的那个电话反馈,有可能是有意外情况。(不要像我一样什么都不干,就主观的认为自己挂了)
没错,也就是从收到上面那封邮件后,我开始疯狂刷题,最高记录是一天在牛客网写了20多道算法题。
一面:2021-11-01
1、自我介绍
2、根据我的简历,问了一下Java中的垃圾回收(微软的面试官超级nice,八股文问的不多,而且都是根据简历写的问的。点赞!)
3、接下来就是做题
(1)设计一种数据结构。它有两种操作,分别是insert和get,insert是向这个结构里插入一个元素,get是获取这个结构的中位数。(我之前在牛客网做过类似的题:数据流中的中位数 )
(2)链表反转(也算是面试必考了hhhh)
面试官看我写完时间还有多,就让我写了一个单例模式
4、反问
二面:2021-11-03
1、自我介绍
2、同样根据简历问了操作系统的内存管理
3、做题
(1)T9键盘 (跟这题很像)
(2)上一题的引申。如果没有输完,想要预测要输words中的哪些word,这怎么办?
我说可以将words用前缀树存储,没输完,但是知道了前缀部分,沿着前缀树往下搜即可。面试官就让我实现了一下前缀树。
4、反问(跟面试官聊的很开心,感觉面试官不仅技术很强,说话也很有水平)
三面(Leader):2021-11-05
真的超级紧张!!
1、自我介绍
2、面试官介绍了一下部门具体是做什么的(超级nice)然后面试官说,根据微软的传统,开始做题吧。
我:好!
3、链表中环的入口节点
我给了好几种方案,面试官想让我在不破环链表结构的同时,又不使用额外的空间,来找到入口节点。
没错,就是快慢指针,但是需要证明为什么可以这么做。
当时有点紧张就磕磕绊绊,证了好久。
证明完了之后就实现快慢指针的思路,又写了一个Bug,当时还看不出来(救命,超级尴尬)
这个时候时间过去了一大半,面试官开始出下一道题
4、找到搜索二叉树中两个错误的节点
这个题我也做过呀!!由于前面影响了心态,导致做这道题也频繁出现bug(救命,太尴尬了)
在面试官的引导和提示下,最后还是写完啦。
5、你有什么问题想要问我吗?
我(心如死灰,觉得自己必挂无疑):没有
插曲
面完之后果不其然挂了,很快收到了感谢信。我很难过,在寝室躺了两天,什么都不相干。
反转
工作还是要继续找的。两天后,还是一如既往的每天从早到晚都待在自习室里。就在我漫步目看书的某一天晚上,又接到了微软HR的电话,说可以把我推荐到别的组,问我愿不愿意继续面。
啊啊啊啊啊,这个时候我已经听不进她说什么了,不管她问什么,我都说可以可以可以!!!
四面+五面:2021-11-26
没错,就是连着面!
四面:
1、自我介绍
2、设计一个ring buffer,其需要满足一下几个条件
- 这个buffer可以存储图像、音频等可变长度的对象
- buffer底层是连续的内存字节缓冲区
- FIFO的读写规则(会有一些读写异常的情况,都需要考虑到)
- 不能使用其他的存储空间
(跟面试官一直在讨论这个题,连最后的反问环节都在讨论hhh)
3、反问
五面:
面试官看我前面面了那么多轮了,就纯聊天hhhh。聊了很久。面试官介绍了微软的文化、他的一些经验以及他对互联网目前形势的一些观点。总之就是超级棒!
面完之后,我都不敢去官网看状态,很怕我一打开就变灰了😔
等了几天之后就offer call了
Offer Letter:2021-12-2
总结:
- 我所有的面试都是中文自我介绍,可能是运气比较好吧hhhh(虽然我也准备了英文版本,但是也不想没用上),建议大家都准备英文版的自我介绍。
- 微软面试官都超级nice。做题的时候,他们更注重的是你的思考过程,所以最开始没有想到最优的解法也没有关系,可以先说说现在的思路,他们会慢慢引导你往最优解去想。
- 面试的时候一定不要紧张,平常心对待,说不定就能超长发挥。