注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
時間線:
16年11月請人內推,
11/14 收到系統確認信
12/13 電面。臨時通知取消,因為寒假回國,推遲到17年1月。
1/9 電話面試第一場,被第二個面試官放了鴿子,又安排了一次。
1/17 電話面試第二場。
2/5 通知進了pool。(有點詭異,怎麼有人在周日凌晨寄信呢??)
面經:
1/9 第一面
是個聲音非常清楚的山哥,在 Google 做了8年 up 。
先問了個 C++ 的知識題,可是我完全不會(所以題目也忘記了),就問面試官可不可以 Google ,他笑著說不用了,我們還是來寫代碼好了!
第一題:
先要我定義 double linked list 的資料結構。
寫一個 function,function 的 input 是 double linked list 的 head ,還有一個 int 。
這個 function 要刪除 double linked list 中第一個出現此 int 的 node。
我先寫了個bug滿滿的版本。在面試官的提醒下考慮了很多種 edge case 。
後來程式碼的架構是:考慮了要刪除的 node 是 head node ,或是要刪除的 node 是在中間,或是要刪除的 node 恰巧在最尾巴。
而我 bug 滿滿的第一版,其實只考慮了要刪除的 node 是在中間。
最後還是被面試官挑出了毛病,他說我做 A*D 的運算,又因為要計算 A*D,所以要再計算 B*C 與 E*F
如果使用者只有詢問 A=?? 我們就只需要計算 B*C 就夠了
問:該怎麼去設計這種資料結構呢?
我那時候跟他說:把每個矩陣當作一個 node ,然後用 direct graph 去 model 這種乘法的關係。
EX: A=B*C 就代表 A 可以往 B 走 A可以往 C走。
當使用者詢問時,我用 BFS 去找 connected component 。
因為在回答的時候已經超時了,所以雖然面試官應該不是很滿意啦!不過他說這樣可以了。進入 Q&A
後來等得有點浮躁的時候收到了 recruiter 的信。希望 match 到。求人品。
|