國內應屆生是不是把Leetcode刷的滾瓜爛熟就能進google了?

我自己在FB做過面試官,面試過200多個人,對FLG那套面試模式還是比較熟悉的。

另外很多人只回答了題主第一個問題,後面還有一連串問題啊喂(都不審題,就教人做題了,狗頭)

國內應屆生是不是把Leetcode刷的滾瓜爛熟就能進google了?

這個大家意見挺統一的,我僅從不同角度來說下爲什麼不能。

因爲Google面試出的題目你大多不能在LeetCode/LintCode上找到原題。

Google算法面試的一大特點就是喜歡出新題或者變種題,你可以去翻翻面經,基本上很少會有原題出現。所以LC刷得再熟練,沒有真正理解的話,可能換個馬甲就不會做了。

另外算法面試的時候,如果你很快秒掉一題,面試官可能會再出一道題或者各種follow up。無腦刷題背答案是沒用的。

大家水平都差不多,那最後會以什麼標準區分呢?

像Google這樣的大廠,面試評價體系已經很標準了。這裏我們只講算法面試,實際上還有系統設計和行爲問題面試。

來看一道題,結合具體例子來感受下吧

最長迴文子串 Longest Palindromic Substring

對於這道題,面試評價從高到低如下

Strong Hire

使用 O(n) 或者 O(nlogn) 的算法實現出來 (Manacher’s Algorithm or Suffix Array),並且代碼優秀,無 Bug 或者有很小的bug,但是能自己發現並解決,無需太多提示

Hire

能夠分別使用枚舉法和動態規劃實現時間複雜度 O(n^2) 的算法。並且代碼質量合格,無Bug,無重複代碼,無需面試官給提示。

Weak Hire

只使用了其中一種 O(n^2) 的算法實現出來,代碼質量還不錯,可以有一些小 Bug,面試官可以給一些小提示。

No Hire

只能想出一種 O(n^2) 的算法,但是 Bug 太多,或者需要很多提示。

Strong No Hire

連一種 O(n^2) 的算法都想不到

4-5輪面試下來

有 >= 1 個 Strong No Hire => No offer
有 >= 2 個 No hire => No offer
有 1 個 No Hire + 1 個 Weak Hire => No Offer
有 1 個 No Hire,其他都是 Hire => Offer or 加面(取決於公司招人多不多,門檻高不高)
有 1 個 Weak Hire => Offer or 加面

一種極端情況是: 一個 Strong Hire + 一個 Strong No Hire => 開個會一起討論一下,通常結果是加面或者No Offer。

總結一下,就是**面試不一定會要求你用最優複雜度的算法來解決問題。**而只刷LC的話,會容易讓你產生一定要用最優解來做題的誤區。

還有代碼不是寫出來就可以過的,代碼質量同樣很重要。

好的代碼質量包括:Bug free,良好的Coding Style(包括變量名命名規範有意義,合理的使用空格,善用空行等),容易讓人讀懂的邏輯,沒有冗餘代碼,有邊界檢測和異常處理。

先實習再轉正是不是很容易?

這個得看公司,很不巧,**G家實習轉正很不容易。**至少在北美是如此,國內的話競爭應該會更大,不要說轉正了,實習就很難拿。

說下北美這邊Google實習要怎樣才能轉正。

谷歌實習轉正需要4個feedback,一次實習可以從host和co-host那裏各收集1個feedback。

剩下2個有兩種方法獲得:再實習一次,或者通過兩輪面試。

所以如果要拿兩次谷歌實習,至少要提前一年就做準備。並且第一次實習的表現決定了會不會給第二年的實習offer。一般大部分人時間只夠一次實習,再加兩輪面試纔有機會轉正。

關於算法面試的方方面面,我在《九章算法班》裏面講得很多了,除了怎樣正確高效地刷題,和麪試官如何溝通,如何提升代碼質量,大廠的面試風格等等都有所涉及。最新一期正在招生中,有3節免費體驗課,可以領取九章算法精選100道算法面試題哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章