微软最新面试题11-27

 

一面leetcode 297       准hard

二面leetcode 1358     准hard

三面leetcode 4               hard

三轮全是hard,无提示撕出。三面hard只20分钟,撕出最优解,依然被吐槽,第二天收到感谢信。

 

虽然败了,但我是败的一点都不服的!


 

简介

暑假8月10号网申系统直接海投的微软苏州STCA SDE,至今已经过去了三个多月,经历了完整的校招流程,在此分享一下我的微软笔试面试timeline以及面经吧。

笔试 2020.9.21

九月上旬收到线上笔试邮件,开始准备。笔试一共三题,前两题难度不大,不怎么需要优化复杂度等等就可以通过;最后一题比较难,当时有几个case没过。不过运气还行,仍然收到了面试。

面试

一面 2020.10.13

男面试官,全中文面试。这一轮比较意外,总体面试的风格其实是类似国内其他大厂的,一上来自我介绍 + 项目经历,之后问起了许多编程语言方面的基础知识,比如java手写单例模式,c++智能指针等等。最后20分钟出了一道代码题LeetCode 113. Path Sum II,在一个在线的白板上写的,没有自动补全等等的功能。写完之后,面试官肉眼debug的时候质疑了其中两三行写法是否可行,不知道是他在刻意考察我还是确实误解了我的代码的意思...😅 此外,他要求我手写几个测试样例,因为刚好遇到了二叉树的题目,我在白板上费了不少劲才打出了几个大概的二叉树形状。。。总的来说这轮面试有点紧张,白板手写代码+测试体验一般,不过好在最后还是跟面试官交流清楚了。

二面 2020.10.13

女面试官,全中文面试,紧接一面进行。这一轮直接是一道数据结构设计题,大概是实现一个记录CPU state值并计算过去5分钟内平均state值的数据结构,应该是LeetCode 362. Design Hit Counter的变种题。这轮是在本地IDE上开着屏幕共享完成,要求是最终能本地能直接运行设计好的代码。女面试官非常友善,积极地回答问题不说,还允许随时搜索不确定的库函数,当然她在屏幕那头看着监控就是了。完成代码后,面试官肯定了实现的代码在复杂度上的优势,不过也指出了一些不足,例如我的代码在实现时调用了系统当前时间,这个做法固然能实现功能却不太利于测试等等。总体而言,这轮面试交流氛围很好。

三面 2020.10.26

男面试官,全中文面试。这一轮是System Design题,大意是如果要做一个类似Google Photos的应用,需要考虑哪些用户的需求(比如用户上传照片、下载照片、搜索照片等等),并且如果要实现功能需要哪些模块支持(比如基本的前端界面、API网关、缓存、数据库......)列举完基本的需求后,开始头脑风暴,面试官让我畅想使用过程中可能出现的各种bug的场景(比如用户如果想要下载一张照片失败了,这个错误可能发生在什么地方?)并且要想出对应的解决策略。总体而言,这一轮面试技术上并没有一开始预期考察的那么多,反而更多考察的是用户&程序员双重角度下的思考能力、心思的缜密性、以及提出问题解决方案的发散性,氛围也很融洽,基本上每个被面试者都能做到有话可说,但是如果想要临场考虑得面面俱到还是挺有难度的。

四面 2020.11.3

男面试官,看起来是一位印度的主管,全英文面试。这一轮AA面的风格基本跟国外的面试大同小异,聊20分钟的人生,在线白板上做30分钟的题(LeetCode 692. Top K Frequent Words),最后10分钟继续聊天。氛围总体保持的不错,对方基本听我说了半句话就能凭母语经验脑补出下半句,所以即便英语有时候紧张说的不太利索也没关系的。

总结

  1. 微软非常注重代码的测试,面试题做出来之后一般都会要求自己想测试的用例/思路,如果有bug他们也希望面试者凭自己的思考找出来,因此这一点需要非常注意,在写代码的时候可以提前构思好之后要怎么测试,或者是写尽量利于测试的代码啥的。
  2. 多和面试官沟通,微软的面试官情商真的高,没得说,所以大胆开口,明确需求的同时也让面试气氛稍微放松一些。


 

【一面】

自我介绍

项目及相关知识点(半个小时)

矩阵原地旋转

相关知识点: 数组

相关知识点: 数组

,并且证明算法的正确性

 

【二面】

英语自我介绍

项目

返回两个有序数组中第k大的值,时间复杂度要求O(logk)

 

【lead面】

简单介绍一下项目的亮点,稍微聊了下相关的知识点

英语分享日常生活,三分钟

个人优缺点介绍

给一个数组,可修改一个值,求由连续相同值组成的子序列的最大长度

 

【AA面】

项目,有聊到很细节(10分钟)

给一个大整数,和几个幸运数字,求比大整数小的全部由幸运数字组成的整数的最大值

 

整体来说:

1,项目主要考察做了什么,有什么技术难点,可能会侧面考察基础知识。

2,算法题都不难(然而我做得也不快。。),把所有情况都考虑进来就行了。过程中要及时和面试官沟通思路,展现思考过程,尤其是优化的过程。

3,感觉微软面试官各有各的风格,摸不清会出什么牌哈哈哈(原以为终面会聊聊人生😲)。反正自信放轻松就是最棒的!

 

许愿offer!🙏🏻🙏🏻🙏🏻

 


 

一面二面 11-13

一面

1. 字典树

2. 哈希表

实现这两个数据结构并回答一些相关问题。

二面

写了一道题,大概意思就是给定一个字符串'aaabbbccc{{a}b{c}}'然后可替换的部分'a: [d, e], c: [f], dbf: [x], ebf: [y]'最后返回所有可能生成的字符串。

三面 11-18

考了一下基础的数据结构和相关问题。

写了一道题,面试官叙述地很不清楚,大概意思是已知一个字符串数组,判断这个字符串数组是否有序,如果有序是什么序,比如有可能的字符顺序是'abdc'这样的。

四面 11-25

聊了聊项目和实习,说实习和专业和苏州那边的业务挺match的,问了下有没有特别想从事的方向什么的。

写了一道题,首先是给出一个文本的n-gram统计信息,然后算是设计题吧,设计一个文本的压缩算法和解压缩算法,不断进行优化。

PS

四次面试全程中文,准备了英文的自我介绍什么的也没用上。

三面面试官自我介绍是principle manager,还听成product manager了,还觉得奇怪为啥PM来面算法岗了?后来才知道原来是研发总监。四面总监面,是一位年轻女性,很亲切。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值