0%

微软中国

在2020年1月中旬官网海投微软苏州SDE intern,在3月上旬收到HR面试邀请。
微软面试主要以算法题为主,当时苏州是2轮,第一轮有2次机会,只要其中一次过了就可以进入manager面。

一面

一面小哥进来寒暄几句,让我简单自我介绍(中文),介绍了下项目,这部分感觉走过场,不过发挥的挺好,聊得很愉快。

算法题
算法题是一道场景题,以二极管数字灯为背景

有4个数字,每个数字由7个二极管组成(横三竖四)。由于一些原因,二极管坏掉了,所以无法发光。例如8是全部都亮,但是可能某几个二极管坏了,只显示为5,也可能是6,9。

问:给定4个坏掉二极管板组成的数字,求可能的数字集合。
例如显示为5555,每个5可能代表6,8,9三种情况,所以最后可能是333*3 = 81,返回81。

解法:
一开始反应有点僵,这题最难的是建模。所有的题目都是面试官口述,得跟面试官一步步确定具体题目需求,题目输入和输入都是自定义,非常考验沟通能力。

一步步跟面试官沟通之后,沟通的还不错,面试官给了一点提示,最后用二进制解法秒了。
结束后问面试官这题解法,面试官说是求subset,二进制也可以。说我能想到二进制解法非常不错了。

Manager面

由于一面发挥的非常好,直接给我进入Manager面,有点出乎意料。

Manager面直接上来二话不说就开始做题,又是一道场景题。说用中文来描述数字,例如一亿五千万六十一百万弎十五。求转成的数字。

乍一看没什么难度,这题其实是一道corner case题,有很多不按常规的描述。
先写了一个解法,面试官说有几个case过不去,后来又改了以下。然后又一种case过不去。

整体表现我觉得就是跟面试官沟通的不够,看一题没仔细想清楚,就闷头写代码,结果很多corner case点没有跟面试官确定清楚。导致最后改来改去,套进去出不来了,最后还被说代码写的不够优雅…

反思

总结经验教训,做题应该先想把逻辑想清楚,跟面试官沟通确认一些case,然后再重新整理思路,一气呵成。总之还是算法硬实力不足吧,之前没有重视题目的corner case处理,导致这次措手不及。