微軟實習面經
然後感謝罩罩幫我改動了一下簡歷(主要是英文太渣。。。
)
然後投了簡歷三天內毫無動靜。
。。
。。
然後我安慰自己說:這三天有兩天是雙休日!他們都不上班好吧。。。。
。
嗯,然後第四天,也就是礼拜一收到一位微軟project師(也就是我的mentor)的郵件。來約電面時間。
。。
想了想,約在兩天之後了,這樣我好做些準備。。。
(事實再次證明。暫時抱佛腳是無用的。。。
)
準備期間,把中英文自我介紹,中英文項目介紹都寫了下來,而且電面之前打印了出來(事實證明我這點小把戲根本就沒用。
。。
)
而且google了一把“微軟面經”,把前幾頁能搜到的都看了一遍(也沒用。。
。)
嗯。然後就是正式電面了。。。
連個自我介紹都沒有,直接是面試官發問。。。
你是清華大學哪個專業的?軟件project。。。
本科也是清華大學?不是。東南大學。本科啥專業?也是軟件project。
。。。
你在xx項目中負責什麽部分?負責client部分,主要有最短路徑的計算和無線傳感器的定位計算。。。
你用什麽來計算最短路徑的?floyd算法。
。
。
簡介一下?主要是dp思想,假設u到v的距離大於u到k和k到v的距離之和。就令他等於後者。。。
復雜度咋樣?n的三次。。
。
假設n比較大,怎麽改進?選floyd是由於實現簡單,而且我們的n僅僅有幾百,還能夠接受。。
。
算法課上有n2logn的,只是挺復雜,記不清了。。
。
你們項目用了多線程麽?沒有。。。
你知道多線程怎麽實現同步麽?鎖。。。
那多進程呢?信號,信號量,管道機制。。
。
(面完後才發現我答的是多進程的通信機制。而不是同步機制,太2.。。。
)
了解虛函數嗎?了解一點點。。。
說說虛函數是怎麽實現的?每一個對象有一個指針指向虛函數表。虛函數表中存著真正應該調用的函數的地址。。。。
我看你簡歷上說在學機器學習,說一下怎麽推薦好友?我說我沒學過有針對性的推薦算法,我能想到的就是依據共同好友來推薦。遍歷全部人。計算共同好友,排序,推薦
計算共同好友是不是拿一個人的每個好友和還有一個人的每個好友一一比較?當然不是,復雜度太高,由於僅僅要計算共同好友的個數。讓我實現我會用set。a的好友為seta,b的好友為setb。然後a,b的好友都放到一個set中為setc,共同好友的個數就是seta.size()+setb.size()-setc.size().
你知道c++中的set是怎麽實現的麽?紅黑樹。。。(好在上學期看過《stl源代碼剖析》)
簡介下紅黑樹?balabala....什麽紅節點以下僅僅能是黑節點,什麽每條路徑上的黑節點個數同樣。。。。
為什麽選紅黑樹。而不是其它平衡樹?balabala.....可能在查詢,改動效率上更高點。。。。
c++有提供set交並的一些操作嗎?我說應該是有的,我在《stl源代碼剖析》裏面看到過,但不是100%確定。萬一沒有。這個問題我能夠用hash表來做,然後說了一下hash表怎麽實現
(後來想想stl都給你提供set這個數據結構了,怎麽可能不提供它的相關操作!
真是太2了。。。)
那你這樣復雜度是多少?假設兩個好友的好友數都是n來表示的話,那麽復雜度為O(n)
嗯,好。假設給你offer,你什麽時候能夠來入職?隨時能夠。。。
(聽到這句話真是開心啊。。。這樣回答是不是不夠矜持?)
好,今天就先簡單聊到這邊。
。
。
好謝謝您。
掛掉電話,發現才面了20分鐘。真是我遇到的最短的一個面試了,略奇葩。。
。。
第二天直接hr打電話過來恭喜我拿到offer了。
。
。真是感動!
最後吐槽下大微軟的part-time intern 的待遇真是低的一米(後兩個月機智的轉全職了=。=)。
。。。。。(怎麽說我也研究生了啊。竟然僅僅有本科實習的一半。
。
。
好懷念NI實習的日子。。。)
今天3個月滿。幹完滾粗了。。
。
微軟實習面經