写在前面
微软的面试整体偏向基础,英语能力考察仅限于个人简介和项目描述,如果运气好的话都是中国的面试官,没有英文面试。
投递简历之后会有hr先和你聊一轮,要求做一个一分钟的英文自我介绍,然后会对英文能力做一个整体评估,告诉你应该怎么准备可能的英文面试。
下面是技术干货部分
电话面试
微软的社招面试通常是先进行一轮电话面试,面试通过的话才会邀请进行现场面试
- 什么是死锁,造成死锁的原因有哪些
- 数据库的索引有了解过吗,有哪些优缺点
- 算法题:rotate一次的数组,找target,例如 [3,4,0,1,2] 找4所在的位置,如果不存在返回-1,要求logn时间 (LeetCode medium原题,直接二分即可,写代码之前记得问有没有重复元素这类二分可能会遇到坑,面试官很nice 很乐意多交流,另外ms的面试风格,一定要自己想test case,尽可能的覆盖所有边界条件)
现场面试
电话面试之后会约现场面试,通常会安排5-6轮的面试,每轮一小时,前3轮是基础面,面试结束后面试官商量决定要不要进行后续的面试,当然如果表现比较差,也可能在某一轮直接结束。
1面
- 算法题:最大子数组和 (LeetCode原题,n时间1空间), 先O(n)空间,在优化到O(1)空间
- 算法题:两个长度为m的无序数组A,B,对于任意不相交的区间ab和