演算法通關手冊(LeetCode)
01. 專案簡介
「演算法與資料結構」基礎知識的講解教程,「LeetCode」800+ 題目的詳細解析。本項目易於理解,沒有大跨度的思維跳躍,項目使用部分圖示、例子來幫助理解。
本教程先從基礎的資料結構和演算法開始講解,再針對不同分類的資料結構與演算法,進行具體題目的講解分析。讓讀者可以透過「演算法基礎理論學習」與「程式實戰學習」結合的方式,徹底的掌握演算法知識。
本教學採用Python 作為程式語言,要求學習者俱備基本Python 程式設計的知識與經驗。
02. 項目地址
歡迎右上角“Star ️ ”和“Fork” ,這是對我最大的鼓勵和支持。
- GitHub 網址:https://github.com/itcharge/LeetCode-Py
支援黑暗模式的線上電子書《演算法通關手冊》。
- 電子書網址:https://algo.itcharge.cn
03. 關於作者
我是iOS / macOS 的開發程式設計師,另外也是北航軟院的非全碩士(在讀)。曾在大學期間學習演算法知識,並參加過3 年的ACM 比賽, 但水平有限,未能取得理想成績。但這3 年的ACM 經歷,給我最大的收穫是鍛鍊了自己的邏輯思維和解決實際問題的能力,這種能力為我今後的工作、學習打下了堅實的基礎。
我從2021 年03 月30 日開始每日在LeetCode 刷題,到2022 年06 月08 日已經刷了1000+ 道題目,並且完成了800+ 題解。努力朝著1000+、1500+、2000+ 題解前進。
在公眾號「程式設計師充電站」回覆"演算法打卡",拉你進LeetCode 演算法打卡計畫群一起組隊打卡。
- 進群暗號:演算法打卡
- 進群需求:少閒聊、多分享、改備註。
04. 版權說明
- 本教學採用知識署名—非商業性使用—禁止演繹(BY-NC-ND)4.0 協議國際授權協議進行授權。
- 本教程題解中的所有題目版權均歸LeetCode 和力扣中國所有。
05. 章節目錄
00. 緒論
- 演算法與資料結構
- 演算法複雜度
- LeetCode 入門與攻略
- LeetCode 題解(字典序排序,850+ 題解)
- LeetCode 題解(依分類排序,推薦刷題列表★★★)
- LeetCode 面試最常考100 題(依分類排序)
- LeetCode 面試最常考200 題(依分類排序)
01. 數組
- 數組基礎知識
- 數組排序演算法
- 冒泡排序
- 選擇排序
- 插入排序
- 希爾排序
- 歸併排序
- 快速排序
- 堆排序
- 計數排序
- 桶排序
- 基數排序
- 數組排序題目
- 二分查找
- 數組雙指針
- 數組滑動視窗
02. 鍊錶
03. 堆疊
04. 隊列
05. 哈希表
06. 字串
- 字串基礎知識
- 單模式串匹配
- Brute Force 演算法
- Rabin Karp 演算法
- KMP 演算法
- Boyer Moore 演算法
- Horspool 演算法
- Sunday 演算法
- 單模式串連題目
- 多模式串匹配
- 字典樹知識
- 字典樹題目
- AC 自動機知識
- AC 自動機題目
- 後綴數組知識
- 後綴數組題目
07. 樹
- 二元樹
- 樹與二元樹基礎知識
- 二元樹的遍歷知識
- 二元樹的遍歷題目
- 二元樹的還原知識
- 二元樹的還原題目
- 二元搜尋樹
- 線段樹
- 樹狀數組
- 並查集
08. 圖論
- 圖的基礎知識
- 圖的遍歷
- 圖的深度優先搜尋知識
- 圖的深度優先搜尋題目
- 圖的廣度優先搜尋知識
- 圖的廣度優先搜尋題目
- 圖的拓樸排序知識
- 圖的拓樸排序題目
- 圖的生成樹
- 最短路徑
- 單源最短路徑知識(一)
- 單源最短路徑知識(二)
- 單源最短路徑題目
- 多源最短路徑知識
- 多源最短路徑題目
- 次短路徑知識
- 次短路徑題目
- 差分約束系統知識
- 差分約束系統題目
- 二分圖
- 二分圖基礎知識
- 二分圖基礎題目
- 二分圖最大匹配知識
- 匈牙利演算法
- Hopcroft-Karp 演算法
- 二分圖最大匹配題目
09. 基礎演算法
- 列舉演算法
- 遞迴演算法
- 分治演算法
- 回溯演算法
- 貪心演算法
- 位元運算
10. 動態規劃
- 動態規劃基礎
- 記憶化搜尋
- 線性DP
- 線性DP 知識(一)
- 線性DP 知識(二)
- 線性DP 題目
- 背包問題
- 背包問題知識(一)
- 背包問題知識(二)
- 背包問題知識(三)
- 背包問題知識(四)
- 背包問題知識(五)
- 背包問題題目
- 區間DP
- 樹形DP
- 狀態壓縮DP
- 計數DP
- 數位DP
- 機率DP
- 動態規劃最佳化
- 單調棧/ 優先佇列優化
- 斜率最佳化
- 四邊形不等式優化
- 動態規劃最佳化題目
11. 附加內容
12. LeetCode 題解(已完成860 題)