前一段時間我參加了Microsoft的招聘。整個面試的過程很長,歷時兩個多月,和許多優秀的競爭者一起廝殺,最終進入了Microsoft。
Online test
時間非常緊,題量很大。時長90分鐘,前面半個小時問了一些常見的問題,後面一小時,做了2道算法題。我把兩道大題列出來。
1.LintCode - 最長公共子串
題目鏈接:
http://www.lintcode.com/zh-cn/problem/longest-common-substring/
參考答案:
http://www.jiuzhang.com/solution/longest-common-substring/
2.LintCode - 最大子數組差
題目鏈接:
http://www.lintcode.com/problem/maximum-subarray-difference/
參考答案:
http://www.jiuzhang.com/solution/maximum-subarray-difference/
羣面
這一輪我很緊張,要求45分鐘內小組討論出結果來。
羣面題目:
給你一個時間戳是hh:mm:ss的形式,分析分針在時針和秒針小的角之間還是之外
一對一面試
面試共計一個小時。
其中前三道是比較簡單的算法實現題。一共花了20分鐘。
1.交換兩個不同的對象而不用第三個對象
2.分解一個非常大的數的因數
3.生成一個串所有可能的排列組合
接着,給了一個code,讓我修改這個code裏面的錯誤,只允許使用一個操作(replace/delete/add a char),這個部分大概花了20分鐘。
最後15分鐘,面試官讓我談談對最新技術的看法,問我更喜歡 IDC 還是 MSIT,爲什麼?