推薦線上閱讀(Github在國內訪問經常不穩定)
推薦Gitee同步
- 介紹:本計畫是一套完整的刷題計劃,旨在幫助大家少走彎路,循序漸進學演算法,關注作者
- 正式出版:《代碼隨想錄》 。
- PDF版本:「程式碼隨想錄」演算法精講PDF 版本。
- 演算法公開課:《代碼隨想錄》演算法影片公開課。
- 最強八股文:代碼隨想錄知識星球精華PDF 。
- 刷題順序:README已經將刷題順序排好了,依照順序一道一道刷就可以。
- 學習社群:一起學習打卡/面試技巧/如何選擇offer/大廠內推/職場規則/履歷修改/技術分享/程序人生。歡迎加入「代碼隨想錄」知識星球。
- 提交程式碼:本專案統一使用C++語言進行講解,但已經有Java、Python、Go、JavaScript等等多語言版本,感謝這裡的每一位貢獻者,如果你也想貢獻程式碼點亮你的頭像,點擊這裡了解提交程式碼的方式。
- 轉載須知:以下所有文章皆為我(程式設計師Carl)的原創。引用本項目文章請註明出處,發現惡意抄襲或搬運,會動用法律武器維護自己的權益。讓我們一起維護一個好的技術創作環境!
很多剛開始刷題的同學都有一個困惑:面對leetcode上近兩千題目,從何刷起。
大家平時刷題感覺效率低,浪費的時間主要在三點:
其實我之前在知乎上回答過這個問題,回答內容大概是按照如下類型來刷數組-> 鍊錶-> 哈希表->字符串->棧與隊列->樹->回溯->貪心->動態規劃->圖論->高階資料結構,再從簡單刷起,做了幾個類型題目之後,再慢慢做中等題目、困難題目。
但我能設身處地的感受:即使有這樣一個整體規劃,對於一位初學者甚至算法老手尋找合適自己的題目也是很困難,時間成本很高,而且題目還不一定就是經典題目。
對於刷題,我們都是想用最短的時間按照循序漸進的難度順序把經典題目都做一遍,這樣效率才是最高的!
所以我整理了leetcode刷題攻略:一個超級詳細的刷題順序,每題目都是我精心篩選,都是經典題目高頻面試題,大家只要按照這個順序刷就可以了,你沒看錯, README已經把題目順序都排好了,文章順序就是刷題順序!挨個刷就可以,不用自己再去題海裡選題了!
而且每題目我都寫了的詳細題解(圖文並茂,難點配有影片),力扣上我的題解都是排在對應題目的首頁,品質是有目共睹的。
那現在我把刷題順序都整理出來,是為了幫助更多的學習演算法的同學少走彎路!
如果你在刷leetcode,強烈建議先按照本攻略刷題順序來刷,刷完了你會發現對整個知識體係有一個質的飛躍,不用在題海茫然的尋找方向。
按照先面的排列順序,從陣列開始刷起就可以了,順序都安排好了,按順序刷就好。
在刷題攻略中,每個專題開始都有理論基礎篇,並不像是教科書般的理論介紹,而是從實戰中歸納所需的基礎知識。每個專題結束都有總結篇,最這個專題的歸納總結。
如果你是演算法老手,這篇攻略也是複習的最佳資料,如果把每個系列對應的總結篇,快速過一遍,整個演算法知識體係以及各種解法就重現腦海了。
這裡每一篇題解,都是精品,值得仔細琢磨。
我在題目講解中統一使用C++,但你會發現下面幾乎每篇題解都配有其他語言版本,Java、Python、Go、JavaScript等等,正是這些熱心小夥們貢獻的程式碼,當然我也會嚴格把控代碼品質。
所以也歡迎大家參與進來,完善題解的各個語言版本,擁抱開源,讓更多小夥伴們受益。
準備好了麼,刷題攻略開始咯,go go go!
「代碼隨想錄」學習社區
程式設計語言
工具
求職
演算法效能分析
雙指標法基本上都是應用在數組,字串與鍊錶的題目上
題目分類大綱如下:
題目分類大綱如下:
題目分類大綱如下:
動態規劃專題已經開始啦,來不及解釋了,朋友們上車別掉隊!
背包問題系列:
打家劫舍系列:
股票系列:
子序列系列:
圖論正式發布
(持續更新中....)
以上題目是重中之重,大家至少要刷兩次以上才能徹底理解,如果熟練以上題目之後還在找其他題目練手,可以再刷以下題目:
這些題目很不錯,但有的題目是和刷題攻略類似的,有的題解後面還會適當補充,所以我還沒有將其納入到刷題攻略。有些題解等日後我完善一下,再納入到刷題攻略。
各類基礎演算法模板
點此這裡查看LeetCode-Master的所有貢獻者。感謝他們補充了LeetCode-Master的其他語言版本,讓更多的讀者受益於此計畫。
大家好,我是程式設計師Carl,哈工大師兄,《代碼隨想錄》作者,先後在騰訊和百度從事後端技術底層技術研發。
新增以下企業微信,會自動傳送給大家PDF版本,順便可以選擇是否要加入刷題群。
新增微信記得備註,如果是已工作,備註:姓名-城市-崗位。若學生,備註:姓名-學校-年級。備註沒有自我介紹不通過哦