Repository: youngyangyang04/leetcode-master
Stars: 61136
README.md
代码随想录 · LeetCode-Master
<p align="center">
<a href="https://keetcoder.com/">🌍 海外英文版</a> ·
<a href="https://github.com/youngyangyang04/keetcoder">🌍🇸 英文仓库</a> ·
<a href="https://programmercarl.com/">🇨🇳 国内在线阅读</a> ·
<a href="https://gitee.com/programmercarl/leetcode-master">🇨 Gitee 同步</a>
</p>
<p align="center">
<a href="https://github.com/youngyangyang04/leetcode-master/stargazers"><img alt="stars" src="https://img.shields.io/github/stars/youngyangyang04/leetcode-master?style=flat&label=Stars"></a>
<a href="https://github.com/youngyangyang04/leetcode-master/network/members"><img alt="forks" src="https://img.shields.io/github/forks/youngyangyang04/leetcode-master?style=flat&label=Forks"></a>
<a href="https://github.com/youngyangyang04/leetcode-master/issues"><img alt="issues" src="https://img.shields.io/github/issues/youngyangyang04/leetcode-master?style=flat&label=Issues"></a>
<a href="https://github.com/youngyangyang04/leetcode-master/graphs/contributors"><img alt="contributors" src="https://img.shields.io/github/contributors/youngyangyang04/leetcode-master?style=flat&label=Contributors"></a>
</p>
一套 循序渐进、少走弯路 的刷题计划。
题目已按知识脉络与难度 排好顺序,每题配 图文题解 + 视频讲解。
适合从零到进阶、系统化掌握数据结构与算法。
---
🔗 快速入口
- 📘 出版书籍:《代码随想录》
- 🧾 PDF 精讲:算法精讲 PDF
- 🎬 算法公开课:170期硬核视频
- 🧠 卡码笔记:最强八股文
- 👥 学习社区:项目 / 面经 / 学习方法 / 面试技巧 → 加入 「代码随想录」知识星球
- 🤝 参与贡献:本仓讲解以 C++ 为主,含 Java / Python / Go / JS 多语言实现。想点亮头像 👉 如何提交代码 · 致谢贡献者
- 📢 转载须知:全部为原创,引用请标注来源;恶意搬运将依法维权。
---
📚 为什么选这套刷题路线?
- 不再海选题目:README 就是刷题路线,按顺序刷即可。
- 全链路学习体验:每个专题含「理论基础 → 实战题目 → 总结复盘」。
- 经典高频必会:题目均为高频面试题与典型考点。
- 多语言覆盖:除 C++ 主线,还有社区贡献的多语言实现。
<p align="center">
<a href="https://programmercarl.com/xunlian/damoxing.html" target="_blank">
<img src="./pics/damoxing.jpg" width="800" />
</a>
</p>
---
🚀 如何使用本攻略
1. 从头开始:按模块顺序「数组 → 链表 → 哈希表 → … → 图论」。
2. 带着问题学:每个模块先看「理论基础」,再刷对应题单。
3. 及时复盘:刷完一个模块,阅读「总结篇」,形成知识闭环。
4. 语言不设限:题解以 C++ 讲解为主,配多语言代码,思路通用。
建议:新手先刷「数组/链表/哈希/字符串」,再进阶到「二叉树/回溯/贪心/动态规划/图论」。
---
🧭 刷题总目录(可折叠)
已根据学习曲线优化排序;下方仅展示每章前若干题目,完整清单请展开查看。
<details>
<summary><b>前序 · 打基础</b></summary>
* 编程语言
* C++面试&C++学习指南知识点整理
* 编程语言基础课
* 23种设计模式
* 大厂算法笔试题
* 工具
* 一站式vim配置
* 保姆级Git入门教程,万字详解
* 程序员应该用什么用具来写文档?
* 求职
* ACM模式练习网站,卡码网
* 程序员的简历应该这么写!!(附简历模板)
* 【专业技能】应该这样写!
* 【项目经历】应该这样写!
* BAT级别技术面试流程和注意事项都在这里了
* 算法性能分析
* 关于时间复杂度,你不知道的都在这里!
* O(n)的算法居然超时了,此时的n究竟是多大?
* 通过一道面试题目,讲一讲递归算法的时间复杂度!
* 关于空间复杂度,可能有几个疑问?
* 递归算法的时间与空间复杂度分析!
* 刷了这么多题,你了解自己代码的内存消耗么?
</details>
<details>
<summary><b>数组</b></summary>
1. 数组过于简单,但你该了解这些!
2. 数组:704.二分查找
3. 数组:27.移除元素
4. 数组:977.有序数组的平方
5. 数组:209.长度最小的子数组
6. 数组:区间和
7. 数组:开发商购买土地
8. 数组:59.螺旋矩阵II
9. 数组:总结篇
</details>
<details>
<summary><b>链表</b></summary>
1. 关于链表,你该了解这些!
2. 链表:203.移除链表元素
3. 链表:707.设计链表
4. 链表:206.翻转链表
5. 链表:24.两两交换链表中的节点
6. 链表:19.删除链表的倒数第 N 个结点
7. 链表:链表相交
8. 链表:142.环形链表
9. 链表:总结篇!
</details>
<details>
<summary><b>哈希表</b></summary>
1. 关于哈希表,你该了解这些!
2. 哈希表:242.有效的字母异位词
3. 哈希表:1002.查找常用字符
4. 哈希表:349.两个数组的交集
5. 哈希表:202.快乐数
6. 哈希表:1.两数之和
7. 哈希表:454.四数相加II
8. 哈希表:383.赎金信
9. 哈希表:15.三数之和
10. 双指针法:18.四数之和
11. 哈希表:总结篇!
</details>
<details>
<summary><b>字符串</b></summary>
1. 字符串:344.反转字符串
2. 字符串:541.反转字符串II
3. 字符串:替换数字
4. 字符串:151.翻转字符串里的单词
5. 字符串:右旋字符串
6. 帮你把KMP算法学个通透
8. 字符串:459.重复的子字符串
9. 字符串:总结篇!
</details>
<details>
<summary><b>双指针法</b></summary>
双指针法基本都是应用在数组,字符串与链表的题目上
1. 数组:27.移除元素
2. 字符串:344.反转字符串
3. 字符串:替换数字
4. 字符串:151.翻转字符串里的单词
5. 链表:206.翻转链表
6. 链表:19.删除链表的倒数第 N 个结点
7. 链表:链表相交
8. 链表:142.环形链表
9. 双指针:15.三数之和
10. 双指针:18.四数之和
11. 双指针:总结篇!
</details>
<details>
<summary><b>栈与队列</b></summary>
1. 栈与队列:理论基础
2. 栈与队列:232.用栈实现队列
3. 栈与队列:225.用队列实现栈
4. 栈与队列:20.有效的括号
5. 栈与队列:1047.删除字符串中的所有相邻重复项
6. 栈与队列:150.逆波兰表达式求值
7. 栈与队列:239.滑动窗口最大值
8. 栈与队列:347.前K个高频元素
9. 栈与队列:总结篇!
</details>
<details>
<summary><b>二叉树</b></summary>
题目分类大纲如下:
<img src='https://file1.kamacoder.com/i/algo/20240424172231.png' width=600 alt='二叉树大纲'> </img></div>
1. 关于二叉树,你该了解这些!
2. 二叉树:二叉树的递归遍历
3. 二叉树:二叉树的迭代遍历
4. 二叉树:二叉树的统一迭代法
5. 二叉树:二叉树的层序遍历
6. 二叉树:226.翻转二叉树
7. 本周小结!(二叉树)
8. 二叉树:101.对称二叉树
9. 二叉树:104.二叉树的最大深度
10. 二叉树:111.二叉树的最小深度
11. 二叉树:222.完全二叉树的节点个数
12. 二叉树:110.平衡二叉树
13. 二叉树:257.二叉树的所有路径
14. 本周总结!(二叉树)
16. 二叉树:404.左叶子之和
17. 二叉树:513.找树左下角的值
18. 二叉树:112.路径总和
19. 二叉树:106.构造二叉树
20. 二叉树:654.最大二叉树
21. 本周小结!(二叉树)
22. 二叉树:617.合并两个二叉树
23. 二叉树:700.二叉搜索树登场!
24. 二叉树:98.验证二叉搜索树
25. 二叉树:530.搜索树的最小绝对差
26. 二叉树:501.二叉搜索树中的众数
27. 二叉树:236.公共祖先问题
28. 本周小结!(二叉树)
29. 二叉树:235.搜索树的最近公共祖先
30. 二叉树:701.搜索树中的插入操作
31. 二叉树:450.搜索树中的删除操作
32. 二叉树:669.修剪二叉搜索树
33. 二叉树:108.将有序数组转换为二叉搜索树
34. 二叉树:538.把二叉搜索树转换为累加树
35. 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
</details>
<details>
<summary><b>回溯算法</b></summary>
<img src='https://file1.kamacoder.com/i/algo/20240424172311.png' width=600 alt='回溯算法大纲'> </img></div>
1. 关于回溯算法,你该了解这些!
2. 回溯算法:77.组合
3. 回溯算法:77.组合优化
4. 回溯算法:216.组合总和III
5. 回溯算法:17.电话号码的字母组合
6. 本周小结!(回溯算法系列一)
7. 回溯算法:39.组合总和
8. 回溯算法:40.组合总和II
9. 回溯算法:131.分割回文串
10. 回溯算法:93.复原IP地址
11. 回溯算法:78.子集
12. 本周小结!(回溯算法系列二)
13. 回溯算法:90.子集II
14. 回溯算法:491.递增子序列
15. 回溯算法:46.全排列
16. 回溯算法:47.全排列II
17. 本周小结!(回溯算法系列三)
18. 回溯算法去重问题的另一种写法
19. 回溯算法:332.重新安排行程
20. 回溯算法:51.N皇后
21. 回溯算法:37.解数独
22. 回溯算法总结篇
</details>
<details>
<summary><b>贪心算法</b></summary>
<img src='https://file1.kamacoder.com/i/algo/20210917104315.png' width=600 alt='贪心算法大纲'> </img></div>
1. 关于贪心算法,你该了解这些!
2. 贪心算法:455.分发饼干
3. 贪心算法:376.摆动序列
4. 贪心算法:53.最大子序和
5. 本周小结!(贪心算法系列一)
6. 贪心算法:122.买卖股票的最佳时机II
7. 贪心算法:55.跳跃游戏
8. 贪心算法:45.跳跃游戏II
9. 贪心算法:1005.K次取反后最大化的数组和
10. 本周小结!(贪心算法系列二)
11. 贪心算法:134.加油站
12. 贪心算法:135.分发糖果
13. 贪心算法:860.柠檬水找零
14. 贪心算法:406.根据身高重建队列
15. 本周小结!(贪心算法系列三)
16. 贪心算法:406.根据身高重建队列(续集)
17. 贪心算法:452.用最少数量的箭引爆气球
18. 贪心算法:435.无重叠区间
19. 贪心算法:763.划分字母区间
20. 贪心算法:56.合并区间
21. 本周小结!(贪心算法系列四)
22. 贪心算法:738.单调递增的数字
23. 贪心算法:968.监控二叉树
24. 贪心算法:总结篇!(每逢总结必经典)
</details>
<details>
<summary><b>动态规划</b></summary>
动态规划专题已经开始啦,来不及解释了,小伙伴们上车别掉队!
<img src='https://file1.kamacoder.com/i/algo/动态规划-总结大纲1.jpg' width=500> </img></div>
1. 关于动态规划,你该了解这些!
2. 动态规划:509.斐波那契数
3. 动态规划:70.爬楼梯
4. 动态规划:746.使用最小花费爬楼梯
5. 本周小结!(动态规划系列一)
6. 动态规划:62.不同路径
7. 动态规划:63.不同路径II
8. 动态规划:343.整数拆分
9. 动态规划:96.不同的二叉搜索树
10. 本周小结!(动态规划系列二)
背包问题系列:
<img src='https://file1.kamacoder.com/i/algo/动态规划-背包问题总结.png' width=500 alt='背包问题大纲'> </img></div>
11. 动态规划:01背包理论基础(二维dp数组)
12. 动态规划:01背包理论基础(一维dp数组)
13. 动态规划:416.分割等和子集
14. 动态规划:1049.最后一块石头的重量II
15. 本周小结!(动态规划系列三)
16. 动态规划:494.目标和
17. 动态规划:474.一和零
18. 动态规划:完全背包理论基础(二维dp数组)
19. 动态规划:完全背包理论基础(一维dp数组)
20. 动态规划:518.零钱兑换II
21. 本周小结!(动态规划系列四)
22. 动态规划:377.组合总和Ⅳ
23. 动态规划:70.爬楼梯(完全背包版本)
24. 动态规划:322.零钱兑换
25. 动态规划:279.完全平方数
26. 本周小结!(动态规划系列五)
27. 动态规划:139.单词拆分
28. 动态规划:多重背包理论基础
29. 背包问题总结篇
打家劫舍系列:
29. 动态规划:198.打家劫舍
30. 动态规划:213.打家劫舍II
31. 动态规划:337.打家劫舍III
股票系列:
<img src='https://file1.kamacoder.com/i/algo/股票问题总结.jpg' width=500 alt='股票问题总结'> </img></div>
32. 动态规划:121.买卖股票的最佳时机
33. 动态规划:本周小结(系列六)
34. 动态规划:122.买卖股票的最佳时机II
35. 动态规划:123.买卖股票的最佳时机III
36. 动态规划:188.买卖股票的最佳时机IV
37. 动态规划:309.最佳买卖股票时机含冷冻期
38. 动态规划:本周小结(系列七)
39. 动态规划:714.买卖股票的最佳时机含手续费
40. 动态规划:股票系列总结篇
子序列系列:
<img src='https://file1.kamacoder.com/i/algo/动态规划-子序列问题总结.jpg' width=500 alt=''> </img></div>
41. 动态规划:300.最长递增子序列
42. 动态规划:674.最长连续递增序列
43. 动态规划:718.最长重复子数组
44. 动态规划:1143.最长公共子序列
45. 动态规划:1035.不相交的线
46. 动态规划:53.最大子序和
47. 动态规划:392.判断子序列
48. 动态规划:115.不同的子序列
49. 动态规划:583.两个字符串的删除操作
50. 动态规划:72.编辑距离
51. 编辑距离总结篇
52. 动态规划:647.回文子串
53. 动态规划:516.最长回文子序列
54. 动态规划总结篇
</details>
<details>
<summary><b>单调栈</b></summary>
1. 单调栈:739.每日温度
2. 单调栈:496.下一个更大元素I
3. 单调栈:503.下一个更大元素II
4. 单调栈:42.接雨水
5. 单调栈:84.柱状图中最大的矩形
</details>
<details>
<summary><b>图论</b></summary>
1. 图论:理论基础
2. 图论:深度优先搜索理论基础
3. 图论:所有可达路径
4. 图论:广度优先搜索理论基础
5. 图论:岛屿数量.深搜版
6. 图论:岛屿数量.广搜版
7. 图论:岛屿的最大面积
8. 图论:孤岛的总面积
9. 图论:沉没孤岛
10. 图论:水流问题
11. 图论:建造最大岛屿
12. 图论:岛屿的周长
13. 图论:字符串接龙
14. 图论:有向图的完全可达性
15. 图论:并查集理论基础
16. 图论:寻找存在的路径
17. 图论:冗余连接
18. 图论:冗余连接II
19. 图论:最小生成树之prim
20. 图论:最小生成树之kruskal
21. 图论:拓扑排序
22. 图论:dijkstra(朴素版)
23. 图论:dijkstra(堆优化版)
24. 图论:Bellman_ford 算法
25. 图论:Bellman_ford 队列优化算法(又名SPFA)
26. 图论:Bellman_ford之判断负权回路
27. 图论:Bellman_ford之单源有限最短路
28. 图论:Floyd 算法
29. 图论:A * 算法
30. 图论:最短路算法总结篇
31. 图论:图论总结篇
</details>
---
🧩 算法模板
---
🙌 参与贡献
- 欢迎提交 题解修订 / 多语言实现 / 文档勘误 / 新增练习
- 请先阅读:如何提交与协作
- 致谢所有贡献者 → Contributors
---
⭐ Star 趋势

---
👨💻 关于作者
大家好,我是 程序员 Carl,哈工大师兄,先后在腾讯、百度从事后端与底层技术研发,著有《代码随想录》。
---
📥 PDF 下载与学习群
添加下方企业微信,自动获取 PDF 精讲,并可选择加入刷题群:
备注格式
- 在职:姓名-城市-岗位
- 学生:姓名-学校-年级(无备注不通过)
<p align="center">
<img src="https://file1.kamacoder.com/i/algo/shuati20250519.jpg" width="200" height="200" />
</p>
---
📜 版权说明
- 本仓库所有内容均为原创,引用需 注明出处与链接。
- 严禁恶意搬运与洗稿,侵权必究。
---