我見過完全0基礎、大齡轉碼,刷題上千然後進谷歌的……
姑且稱他爲老A吧。這裏0基礎指的是沒學過編程語言,沒學過數據結構和算法,一上來就直接做題那種。
第一道題two sum,老A顯然是不會做的。他的方法就是看答案,背答案,然後默出來,就這樣還是錯了很多次。
然而就是這樣低的起點,老A把LC前300道題刷了至少3遍,累計刷題數超過1000道,最後靠刷題上岸了谷歌。
關於老A的求職過程和刷題經驗,可以來看看他自己的分享:
我說老A的故事,並不是鼓勵大家從0開始刷題,畢竟老A自己也走了很多彎路,踩了無數坑。
如果能早點掌握正確的方法,老A也就不用刷1000道題了。不過老A的刷題經驗和麪試做題方法確實有獨到之處。
在Leetcode/LintCode開始刷題,首先最好能具備一定的基礎,包括:
語言基礎
用於刷題的編程語言有很多,算法是通用的,不受限於語言,主流的Java或者Python都可以。
Java的優點是用的公司多,一般面試官沒有不會Java的;Python優勢在於語法簡單,coding能節省很多時間。
算法部分
二分搜索 Binary Search
分治 Divide Conquer
寬度優先搜索 Breadth First Search
深度優先搜索 Depth First Search
回溯法 Backtracking
雙指針 Two Pointers
動態規劃 Dynamic Programming
掃描線 Scan-line algorithm
快排 Quick Sort
數據結構部分
棧 Stack
隊列 Queue
鏈表 Linked List
數組 Array
哈希表 Hash Table
二叉樹 Binary Tree
堆 Heap
並查集 Union Find
字典樹 Trie
如果是應對求職面試,那麼可以按照下面的面試高頻知識點來刷。
《九章算法班2020版》免費試聽
獲取面試 coding style 指南
爲了應對最新疫情下的面試形式,令狐老師已經爆肝熬夜1個月,擴充原來9節課至40+課時
內容亮點:
- 課程覆蓋 90%國內外一線大廠算法面試高頻考點
- 2020 夏秋招最新大廠面試算法題 80+實戰講解
- 規範編程細節,實質性提升 Coding 能力避免面試“隱形坑”
- 課程體系完美匹配大廠面試考點,算法面試從容應對
如何報名 :
戳鏈接立即免費報名試聽:https://www.jiuzhang.com/course/71/?utm_source=sc-zhihu-fks 立即報名免費試聽
對算法題來說有兩大法寶,“拿到題選什麼算法”和“如何實現這個算法”,後者會更容易一些,所以可以先從實現算法開始練起(LintCode可以篩選對應知識點的分類訓練)。
當然,針對面試算法,也有一些書:
《劍指 Offer》:幾乎包含所有常見的、經典的面試題,是應對面試的必讀書籍
《編程之美》:適合準備面試FLAG大廠時候用來刷題
ps:配合lintcode食用效果更佳
最後,關於算法和數據結構,再推薦一些書。
1.入門系列:
《算法圖解》:“像小說一樣有趣的算法入門書”,主打“圖解”,通俗易懂
《大話數據結構》:把理論講得有趣不枯燥;每個數據結構和算法,作者都結合了生活中的例子,能讓你有非常直觀的感受。
2.教科書系列:
《數據結構與算法分析》:很多大學都拿它當作教材,非常系統、全面、嚴謹,適合掌握了至少一門編程語言的同學。
作者也很貼心,這本書有三種語言的版本:《數據結構與算法分析 : C 語言描述》《數據結構與算法分析 : C++ 描述》《數據結構與算法分析 : Java 語言描述》。
3.進階之旅:
《算法導論》:有了一定基礎之後,就可以開始啃這本大部頭了。
5.擴展閱讀:
《算法之美》:算法科普,從生活中的各種問題說起:租房、談戀愛、老虎機、拍電影、面試、買彩票、各種排序、找停車位、尋找新藥、臨牀試驗、奧巴馬拉贊助、預估電影票房等等,非常生活化,可以作爲補充閱讀。
《算法帝國》:同樣是科普類書籍,並無涉及算法的原理與實現細節,也可以作爲補充閱讀。
6.殿堂級
《計算機程序設計藝術》:包含很多卷,深度、廣度、系統性、全面性是其他所有數據結構和算法書籍都所無法相比。可以當做一種挑戰~