刷 leetcode 需要哪些基礎?

我見過完全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食用效果更佳

image

最後,關於算法和數據結構,再推薦一些書。

1.入門系列:

《算法圖解》:“像小說一樣有趣的算法入門書”,主打“圖解”,通俗易懂

《大話數據結構》:把理論講得有趣不枯燥;每個數據結構和算法,作者都結合了生活中的例子,能讓你有非常直觀的感受。

2.教科書系列:

《數據結構與算法分析》:很多大學都拿它當作教材,非常系統、全面、嚴謹,適合掌握了至少一門編程語言的同學。

作者也很貼心,這本書有三種語言的版本:《數據結構與算法分析 : C 語言描述》《數據結構與算法分析 : C++ 描述》《數據結構與算法分析 : Java 語言描述》。

3.進階之旅:

《算法導論》:有了一定基礎之後,就可以開始啃這本大部頭了。

5.擴展閱讀:

《算法之美》:算法科普,從生活中的各種問題說起:租房、談戀愛、老虎機、拍電影、面試、買彩票、各種排序、找停車位、尋找新藥、臨牀試驗、奧巴馬拉贊助、預估電影票房等等,非常生活化,可以作爲補充閱讀。

《算法帝國》:同樣是科普類書籍,並無涉及算法的原理與實現細節,也可以作爲補充閱讀。

6.殿堂級

《計算機程序設計藝術》:包含很多卷,深度、廣度、系統性、全面性是其他所有數據結構和算法書籍都所無法相比。可以當做一種挑戰~

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