微軟SDE面經(電面+onsite)

本人工做1年多了,正在準備跳槽中。剛剛參加完微軟西雅圖的面試,來分享一下本身的面試過程。一共7輪面試,其中1輪電面,6輪Onsite。面試

第一輪 電面1

第一輪是電面,先是讓自我介紹,而後根據簡歷提了幾個問題以後,就直接開始上題了。算法

  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 了。ide

  1. 最大正方形。在一個二維01矩陣中找到全爲1的最大正方形。spa

LintCode原題:http://www.lintcode.com/problem/maximal-square/
參考答案:http://www.jiuzhang.com/solutions/maximal-square/設計

  1. 在一個二維01矩陣中找出1最多且連續的一行。code

第三輪 Onsite 2

在這輪只有1個問題,大約用了35分鐘。orm

  1. 設計題,設計BitSet API

第四輪 Onsite 3

問了一道二叉樹問題。

  1. 驗證二叉查找樹。給定一個二叉樹,判斷它是不是合法的二叉查找樹(BST)。
    LintCode原題:http://www.lintcode.com/problem/validate-binary-search-tree/
    參考答案:http://www.jiuzhang.com/solutions/validate-binary-search-tree/

第五輪 Onsite 4

這一輪上來先讓我作自我介紹。而後又讓我講了講前面的幾輪面試。後面就作了道算法題。

  1. 合併兩個排序鏈表。將兩個排序鏈表合併爲一個新的排序鏈表。
    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

面試官先問了我爲何選擇微軟,還有理想的工做地點。而後問了一下以前作過的項目碰見過的最大的挑戰是什麼,接着問了一道算法題。

  1. 數據流中位數。數字是不斷進入數組的,在每次添加一個新的數進入數組的同時返回當前新數組的中位數。
    LintCode原題:http://www.lintcode.com/zh-cn/problem/data-stream-median/
    參考答案:http://www.jiuzhang.com/solutions/median-in-data-stream/

基本上面試的過程就是這樣了。


(3)
相關文章
相關標籤/搜索