目錄html
2. LeetCode的現狀和問題github
3. 本文的初衷面試
LeetCode是面向找IT行業相關公司開發崗/算法崗的一個算法題庫網站,想去BAT等大廠,筆試和麪試中的大部頭都要考你算法題的解題技巧和編碼能力。然而,對於不少大一大二在校的本科同窗,甚至包含一部分研究生同窗,都會問一句:LeetCode是啥?該部分同窗通常都是在臨近找工做時,尋找相關經驗貼才知道原來還有這樣的一個神奇的網站。隨着IT相關專業和大多數轉專業同窗都瞄準了互聯網方向的崗位,以及計算機學科招生增多和專業的熱門化(高考專業錄取收分愈來愈高),致使內卷愈來愈嚴重。所以,爲了提升我的的核心競爭力,提早or開始刷LeetCode,從而開闊本身的算法思惟,並提升本身的編碼能力,可以大大增長咱們獲取理想Offer的機會。網站
LeetCode網站剛開始建立時,題庫內部共約800道題,其中的題目基本都是來自谷歌等互聯網大廠的面試筆試真題。然而,隨着網站的發展,題庫裏面的題目數量也在逐步遞增。截止2020年10月4日,已累計1822道題。後期,基本還會以每週4-5道題的數量遞增。從而致使:ui
(1)題目量愈來愈大,想半年or一年所有刷完,很難!或者說,不現實,付出和收入很難成正比。
(2)考點方向多,不知道從哪裏入手,讓人感受很迷茫。
(3)若是盲目地天天隨機刷幾道題,會出現:隨着時間的推移,幾周前答錯的題,現在重寫,依然會大機率出錯。便可能出現:竹籃打水一場空的問題。
本人大三時,有系統學習和刷過算法題半年多時間,另外在研二上學期也刷過三個多月的LeetCode。對於LeetCode的刷題有一點我的的經驗和心得,在記錄本身過去學習過程的同時,也但願對初步踏入LeetCode刷題之旅的同窗有點幫助。本文的重點對象:大一大二的本科生,以及研一就下定決心打算找工做的同窗。若是正在看本文的你,有着ACM等算法比賽經歷,就看成參考小資料看看吧>~<。
分三步走策略,第一次刷題建議4-6個月完成。(若是你對算法充滿狂熱,或者說有很強烈的目標,而且肯付出大量的時間,我的感受你徹底可以用3個月時間初步刷完一次。)
重點關注:數組、字符串、棧、隊列、二叉樹、鏈表、哈希表、遞歸和動態規劃。弄懂基本理論,並會解答大部分的簡單題和部分的中等難度題。
刷題方式:直接在LeetCode官網上面(具體操做見下圖),選擇數據結構專區裏面的相關章節進行編碼學習,建議耗時20天-40天。
《劍指Offer》共計68道題,建議天天平均完成3道題,耗時20天-40天。
強烈建議要買書看,看看裏面的題目解題思路的講解,第一遍刷的時候不要死磕,可是必定要弄懂。在正式找工做前,通常刷個3遍左右比較完美,最好可以作到對其中的題目擁有較強的手撕代碼能力。
給出一份我在2019年上半年期間,採用Python語言刷的GitHub解答。
針對LeetCode題庫裏的題目愈來愈多的問題,我我的依據考點對題庫裏面的題目進行了篩選,並對考點進行了細化總結,共計313道題,建議耗時90天-120天。
我將按照如下順序推薦刷題:
(1)重視對遞歸思想的理解和應用,遞歸是DFS和回溯法以及樹等知識點解答的基本能力要求。請參考博客:LeetCode刷題總結-遞歸篇。
(2)解決完遞歸的問題後,建議重視動態規劃、數組、數學、樹和字符串的刷題,其它知識點建議在上述五點內容以後開始刷,其中動態規劃問題和數學問題是算法題的難點和痛點問題:刷題過程當中,極可能讓你掉層皮。
刷題推薦及順序(共計313題):
初步刷完上述的313題後,能夠考慮開始參加LeetCode每週的周賽,以比賽來敦促本身的算法刷題過程,同時激勵本身的算法刷題興趣。後續,開始針對本身的易錯點,依據LeetCode上面的考點標籤題庫選擇合適的題目進行鍼對性地練習。
最後,若是看到本文的同窗已經開始步入了找工做的時期,沒有系統和完整的時間來完成300多道的題目。我的建議,只須要把《劍指Offer》刷2-3遍,另外把LeetCode網站推薦的LeetCode熱題Hot100刷完1-2遍便可。