微软SDE面经(电面+onsite)

2017-05-23  本文已影响0人  木子音_ad78

本人工作1年多了,正在准备跳槽中。刚刚参加完微软西雅图的面试,来分享一下自己的面试过程。一共7轮面试,其中1轮电面,6轮Onsite。

第一轮 电面1

第一轮是电面,先是让自我介绍,然后根据简历提了几个问题之后,就直接开始上题了。

给出一个字符串(假设长度最长为1000),求出它的最长回文子串,你可以假定只有一个满足条件的最长回文子串。

LintCode原题:http://www.lintcode.com/problem/longest-palindromic-substring/

参考答案:http://www.jiuzhang.com/solutions/longest-palindromic-substring/

follow up: 问了类似于找出最长且长度为奇数/偶数的回文子串的这种问题。

电面总体感觉还不错,没过多久HR联系我告知电面通过,可以做接下来的准备了,并且约定了Onsite 的时间。

第二轮 Onsite 1

面试官先进行了自我介绍,然后问了我3个最擅长的编程语言,聊了一下就开始coding 了。

最大正方形。在一个二维01矩阵中找到全为1的最大正方形。

LintCode原题:http://www.lintcode.com/problem/maximal-square/

参考答案:http://www.jiuzhang.com/solutions/maximal-square/

在一个二维01矩阵中找出1最多且连续的一行。

第三轮 Onsite 2

在这轮只有1个问题,大约用了35分钟。

设计题,设计BitSet API

第四轮 Onsite 3

问了一道二叉树问题。

验证二叉查找树。给定一个二叉树,判断它是否是合法的二叉查找树(BST)。

LintCode原题:http://www.lintcode.com/problem/validate-binary-search-tree/

参考答案:http://www.jiuzhang.com/solutions/validate-binary-search-tree/

第五轮 Onsite 4

这一轮上来先让我做自我介绍。然后又让我讲了讲前面的几轮面试。后面就做了道算法题。

合并两个排序链表。将两个排序链表合并为一个新的排序链表。

LintCode原题:http://www.lintcode.com/problem/merge-two-sorted-lists/

参考答案:http://www.jiuzhang.com/solutions/merge-two-sorted-lists/

第六轮 Onsite 5

这一轮相对轻松了许多,基本上就是在聊天,主要针对我简历上写的项目经验问了一些问题,然后进行了coding。

1.对十亿个整型数排序,并尽可能使用最小的存储量

第七轮 Onsite 6

面试官先问了我为什么选择微软,还有理想的工作地点。然后问了一下之前做过的项目遇见过的最大的挑战是什么,接着问了一道算法题。

数据流中位数。数字是不断进入数组的,在每次添加一个新的数进入数组的同时返回当前新数组的中位数。

LintCode原题:http://www.lintcode.com/zh-cn/problem/data-stream-median/

参考答案:http://www.jiuzhang.com/solutions/median-in-data-stream/

基本上面试的过程就是这样了。

上一篇下一篇

猜你喜欢

热点阅读