一面:
自我介绍+算法题
简短的介绍了一下项目背景,面试官也没咋详细问,接着就是一道算法题
算法题:二维平面上有若干个点,求出所有欧氏距离和曼哈顿距离相等的节点对数。(面试官有解释什么是欧氏距离和曼哈顿距离)
强调若干个节点可能有重复的情况,但是可以先想想节点不重复情况的算法。
我最终只答出了不重复情况下的(就是找横坐标相同的节点对和纵坐标相同的节点对求和呜呜太菜了),然后写好了代码,面试官提醒我代码有可以改进的地方,然后又改了改。。。(过程非常紧张,感觉脑子停止了运作,一个简单的东西改了好久)后面面试官一直引导我思考节点重复情况的,可是根本想不出来,气氛一度非常尴尬,最后时间来不及了,面试官让我回头再想想。面试结束
我以为一面估计是凉凉,感觉自己在coding方面太菜了不敢再经历第二次一面,没想到后来给我发邮件通知的是二面,欣喜若狂
二面:
英文!自我介绍+两道算法
幸好我早有准备,否则临场英文还真不知该咋发挥,建议面微软的uu们都准备个英文自我介绍还有项目介绍,很多面试官都要求这个。
介绍完了就开始写代码:
1、二叉树的最近公共祖先(Lc原题)
我用递归做的,问了时间复杂度,以及优化方案,优化方案没想出来,依旧是引导,告诉我可以在终止条件做文章,或者加全局变量。。。依旧是啥也想不出来(太菜
2、非负数组求和能被3整除的最大子序列(可以不连续)
我用取余做的,说了下思路就到点了,按照惯例问了面试官几个问题。
总体感觉,微软比其他所有公司都看重算法能力,也不仅仅是能解出来,最好还要在复杂度上达到最优,对于项目经历啥的并不那么care。
全部评论
(5) 回帖