一面(10.21,约 40 min)
- 微软那边出了点纰漏,面试官迟到了20多分钟,于是全程就是只做了一道题
题目:实现一个哈希表的结构,要求键值对按键的值升序排列,已经限定了键和值分别存在数组里,另外提供了插入键和插入值的方法,所以要实现的就是基于这两个方法的键值对插入。
- 题目不难,二分查找就行,不过面试官是个很扣细节的人,会关注一些很细节的东西,比如空格。
反问环节:
- SDE在微软工作时,写代码和其他开会/杂事的时间比例是怎样的
二面(10.21,约 60 min)
-
聊项目
-
英文考察:为什么想来微软
-
手撕算法:给定一个全为正整数的int[]和一个值 K,求数组中元素乘积小于 K 的子数组个数
磕磕绊绊做了40多分钟,一开始想用 DP,面试官指出不对,然后改用双指针(滑动窗口),缩窗口的边界条件抠了半天,最后磕磕绊绊算是做出来了。
反问环节
- 同上
- 彩蛋:面试官犹豫了一会,说了几个比例:4-4-2,4-3-3,5-3-2,我说一看您就是看足球的人,我俩都笑了。
LEAD 面(10.27,约 60 min)
-
聊项目
-
英文考察:用英文表达一下在浏览器中键入网址并按下回车后,直到网页显示出来,中间发生了什么。
-
如何能够让全世界各地的用户以相等的速度快速获得它们请求的网页或其他在线资源?(CDN,代理)
-
手撕算法:按值删除BST中某一个节点
不得不说,很久没刷题了,状态很差,这种简单题也写得磕磕绊绊,最后在面试官提示下算是写对了。
反问环节
- 校招进入微软之后怎么分部门和分组?
- 同上(回答:一半一半)
AA 面(11.05,约 55 min )
-
聊项目
-
为什么转行
-
手撕算法:给定一个int[][],求数组中最长的连续下降路径的长度
比如有一个数组
1 4 7 5
8 3 9 4
2 6 11 3
0 2 13 5
最长的连续下降路径就是 13 -> 11 -> 9 -> 7 -> 4 -> 1
一共走过 6 个数,输出结果为 6先写了个暴力回溯的解法,然后面试官提示优化,磕磕绊绊写了个记忆化搜索出来 - 英文说一下你为什么想来微软
反问环节
- 微软对校招新人的培养制度?
- 同上(答曰:工作中花在技术上的时间大概***成)
- 总的来说微软的面试体验还是非常nice的,面试官人都很好,会耐心地和我讨论
- 就是时间太迟了,一方面自己做题的状态很差,另一方面这个时间点别家已经在逼签了
- 最后许愿早点出结果吧,甭管挂了还是过了
全部评论
(10) 回帖