2019微軟亞研院實習面經(工程創新組)

更新:已涼


其他面經傳送門:https://blog.csdn.net/zxwsbg/article/details/103499632


Team 1

找學姐內推的創新工程組,隔了三天打電話給我約了面試。

打電話後發了郵件,鏈接裏面是一個遠程共享屏幕的網頁,我寫代碼他能直接看到。

先問了我大一那個項目,差不多講了十分鐘,對面感覺不是很滿意。然後就開始寫代碼。

題目一

給定一個字符串,讓你從中間提取出一個合法的IP地址,存在vector裏面返回,如果沒有的話返回一個空的vector。

思路

感覺沒啥好做的,一眼標程。花了差不多10分鐘寫完了,各種小細節也都處理到了:字符串連續輸入.,IP地址超過255,輸入空字符串等等。面試官說我代碼思路很清晰,沒有啥大問題。


題目二

先問我有沒有玩過黑白棋,我說沒有,他說那貪吃蛇玩過吧。讓我寫一個貪吃蛇的主要邏輯和部分函數,以及各部分用什麼數據結構維護。

思路

之前沒做過,基本都是現想的。

  • 棋盤,面試官說了10*10,所以就直接拿二維數組存了(美其名曰鄰接矩陣)。
  • 蛇,考慮到蛇的尾巴是會不斷延長的,所以思考了半分鐘,決定拿vector<pair<int,int> >來存。
  • 豆子。直接找兩個int表示橫縱座標
    然後寫了一下主要邏輯。。因爲挺簡單的,就順手寫了出來。面試官還要求我寫了一下移動函數的邏輯,沒啥問題也直接寫出來的:蛇身體的一個部分一定是移動到它前面一個部分上次所在的位置,這個還是想了兩分鐘才想出來的,再單獨判一下頭的移動。

總結

說我兩道題代碼寫的都挺好的,思路很清晰。

給我提了個建議:工程和acm不一樣,變量名命名要規範。儘管我儘量規範化了變量名的命名,但是在命名豆子座標的時候,直接習慣性的int sx,sy;。。

然後問我有啥問題,我問他們那主要做啥:就給我介紹了一下。接着問總共幾面,他說因爲實習,就這一面,說一週內結果會發通知告訴我。


Team 2

update。就在我等第一組的消息時,創新工程組的另一波人給我打了電話,又約了一場面試。

題目

敘述的時候稍微簡化一下題面。

給定一個n*m的矩陣,矩陣中每個值表示格子的高度,矩陣的四周都可以看成無窮低。問假如每個格子都均勻的一直下雨的話,到了最後穩定狀態,哪些格子會蓄水。

思路

先理解錯了20分鐘題意。正確理解後考慮求聯通塊,連通塊的外圍是比它高的一圈。如果一個聯通快緊鄰邊界,那麼它就是不能蓄水的。

想了半天也沒想好怎麼寫。面試官提醒我可以考慮從一個格子出發,順着比它矮的地方走,如果能走的邊界就說明不能蓄水,否則就可以蓄水。

他一說我就想明白了(腦抽無解),然後花了5分鐘寫了個爆搜。因爲時間很緊,就無腦兩次DFS,第一次搜索一個格子是否能到達邊界,第二次給這個格子的聯通塊全部打上標記(標記是否能到達)。

總結

一言難盡,這次面崩了。

面試官很和藹,還問了我一些有沒有做過多人項目,git合併分治遇到衝突怎麼辦。由於我一直是把git當遠程倉庫用的,遇到問題都是直接強制推送本地分支的(哭)。還問我有沒有做過面向對象的項目,我:做過xx管理系統。

然後問了一下能實習多久(逃課也去實習啊),介紹了一下他們的項目。以及我順便問了一下上組是啥情況,說有很多candidate在面。

感覺自己涼了,安心上課叭- -

發佈了178 篇原創文章 · 獲贊 21 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章