微软Azure面经
1020
发布于 未知归属地

自我介绍:

本人目前本科毕业1.8年,在某司存储相关部门工作1.6年。在脉脉上联系到微软HR后投递简历。投递的部门是上海Azure storage,经历六轮面试,最终拿到offer,title是sde,职级应该是60级。当前原部门已提离职。

整体体验:

六轮面试里,除了终面是英文没有算法题,前五面都是中文,有算法题。面试官都非常随和、开放,同时又乐于深入探讨。面试以项目经历和算法题为主,几乎没有八股文,考察知识点也会举出相应的情景。

问项目相关的问题,会让面试者自行介绍,然后再针对性地提问。面试官会关注所做的工作在系统整体中发挥的作用,或者面试者对系统整体的理解。对于我所涉及的存储系统,会提到IO流在各模块中的处理,我的工作在哪方面对IO效率进行了优化,为什么会有这样的影响。为什么选择这样的优化方法,甚至会提出另一种方法,问这样做可不可以,会有什么影响。

算法题大概都是中等水平,除了二叉搜索树可能难度高些。
开始写代码之前会先做讨论,如果思路并非最佳,面试官会做引导。思路确定后开始写代码。写代码时面试官不会打扰,写完不需要运行,主要由面试官看思路和正确性。(根据面试反馈,个人认为比较重要的指标:解题思路、编码速度、代码风格、特殊用例/异常输入的处理)

总体来说过程非常愉快,面试官理解速度很快,提出的问题也很有意义。这种开放探讨的态度和氛围非常nice,给我留下深刻印象。

筛选面:

1.问在公司里做过的项目。
2. LSM树、B+树。
算法题:
已知一 个矩阵,多次查询任意子矩阵的和。

一面:

  1. 问在公司里做过的项目。

算法题:
两个递增数组a[m]和b[n],求所有的(a[i]+b[j])中第k小的值。
(优先队列)

二面:

  1. 问在公司里做过的项目。

算法题:
在二维平面存在 n个点 x,y。进行k个查询,查询距离某个位置最近的三个点。
其中距离函数:Min(Abs(x1 - x2), Abs(y1 - y2))
(简单题)

三面:

  1. 问在学校里做过的一个目标检测项目。
    (面试官:公司的项目前面的面试官估计已经问差不多了,问个你在学校的项目吧。我:?)
  2. 问C/C++基础知识:
    malloc与new的区别。
    使用malloc创建vector、string是否能正常使用(构造、堆内存分配)
    使用free释放vector string是否有内存泄漏(析构、堆内存释放)
    多态的含义。多态的实现,虚函数表及其指针保存的位置。
    空类的大小。(A为没有成员变量的类,sizeof(A)的值)(被问住了。面试官表示可以猜一下,但是要讲出道理)

算法题:

设计一种有以下三种操作的数据结构:插入、删除、取最小值。
(比较坎坷的一道题)
先提出了两种方案:

  1. 堆实现的优先队列:插入o(logn)、删除o(n)、 取最小值o(1);
  2. 哈希链表:插入o(n)、删除o(1)、取最小值o(1)

面试官:不一定要让某种操作达到o(1)复杂度
我:(想不出来)
面试官:可以考虑二叉搜索树
我:为了防止失衡,那就得红黑树了(慌)
面试官:不用那么复杂,普通BST就行
所以最终这道题就是二叉搜索树的插入、删除、取最值。代码上以删除为主。

四面:

  1. 问在公司里做过的项目。
  2. 介绍部门的业务,人员构成,工作节奏,on call制度等 。

算法题:
存在一个巨大的SQL表,以string类型作为索引。索引可通过strcmp判断大小,且存在STR_MIN和STR_MAX,可作为区间的左右边界,但是不能指定为某一条目的索引(STR_MIN作为左边界,相当于左侧为负无穷)。
有多次扫描任务,随机对一个range的条目做扫描。
一个任务反映为一个左闭右开区间(左区间为STR_MIN则为开)。求经过多次任务后,剩余的未被扫描过的区间。(其实主要还是string定义域内的区间覆盖,和上面描述的表关系不大)
(简单状态机)

终面(英文,无算法题)

  1. 介绍自己,介绍自己most proud of的项目。
  2. 面试官介绍大部门,共有7个组,每个组的工作内容和职责,以及我将要在哪个组工作,详细介绍这个组的工作(面试官: It's very important and challenging.)
  3. 我想问的问题。(on call 制度,工作节奏,上海疫情)

建议:

  1. 对问题的理解和思考的过程非常重要。
  2. 对凡是写在简历上的项目都要有一定的理解,不要写不太熟悉或者贡献度低的项目。除了自己负责的部分,对项目整体也应该有一定的理解。
  3. 算法题思路非常重要,同时也要注意边缘用例和代码风格。
  4. 八股文基本没有,但是操作系统、数据结构的基础知识还是会变相考察。
评论 (0)