🌍 海外英文版 · 🌍🇸 英文仓库 · 🇨🇳 国内在线阅读 · 🇨 Gitee 同步
一套 循序渐进、少走弯路 的刷题计划。 题目已按知识脉络与难度 排好顺序,每题配 图文题解 + 视频讲解。 适合从零到进阶、系统化掌握数据结构与算法。
- 📘 出版书籍:《代码随想录》
- 🧾 PDF 精讲:算法精讲 PDF
- 🎬 算法公开课:170期硬核视频
- 🧠 卡码笔记:最强八股文
- 👥 学习社区:项目 / 面经 / 学习方法 / 面试技巧 → 加入 「代码随想录」知识星球
- 🤝 参与贡献:本仓讲解以 C++ 为主,含 Java / Python / Go / JS 多语言实现。想点亮头像 👉 如何提交代码 · 致谢贡献者
- 📢 转载须知:全部为原创,引用请标注来源;恶意搬运将依法维权。
- 不再海选题目:README 就是刷题路线,按顺序刷即可。
- 全链路学习体验:每个专题含「理论基础 → 实战题目 → 总结复盘」。
- 经典高频必会:题目均为高频面试题与典型考点。
- 多语言覆盖:除 C++ 主线,还有社区贡献的多语言实现。
- 从头开始:按模块顺序「数组 → 链表 → 哈希表 → … → 图论」。
- 带着问题学:每个模块先看「理论基础」,再刷对应题单。
- 及时复盘:刷完一个模块,阅读「总结篇」,形成知识闭环。
- 语言不设限:题解以 C++ 讲解为主,配多语言代码,思路通用。
建议:新手先刷「数组/链表/哈希/字符串」,再进阶到「二叉树/回溯/贪心/动态规划/图论」。
已根据学习曲线优化排序;下方仅展示每章前若干题目,完整清单请展开查看。
前序 · 打基础
-
编程语言
-
工具
-
求职
-
算法性能分析
数组
链表
哈希表
字符串
双指针法
双指针法基本都是应用在数组,字符串与链表的题目上
栈与队列
二叉树
- 关于二叉树,你该了解这些!
- 二叉树:二叉树的递归遍历
- 二叉树:二叉树的迭代遍历
- 二叉树:二叉树的统一迭代法
- 二叉树:二叉树的层序遍历
- 二叉树:226.翻转二叉树
- 本周小结!(二叉树)
- 二叉树:101.对称二叉树
- 二叉树:104.二叉树的最大深度
- 二叉树:111.二叉树的最小深度
- 二叉树:222.完全二叉树的节点个数
- 二叉树:110.平衡二叉树
- 二叉树:257.二叉树的所有路径
- 本周总结!(二叉树)
- 二叉树:404.左叶子之和
- 二叉树:513.找树左下角的值
- 二叉树:112.路径总和
- 二叉树:106.构造二叉树
- 二叉树:654.最大二叉树
- 本周小结!(二叉树)
- 二叉树:617.合并两个二叉树
- 二叉树:700.二叉搜索树登场!
- 二叉树:98.验证二叉搜索树
- 二叉树:530.搜索树的最小绝对差
- 二叉树:501.二叉搜索树中的众数
- 二叉树:236.公共祖先问题
- 本周小结!(二叉树)
- 二叉树:235.搜索树的最近公共祖先
- 二叉树:701.搜索树中的插入操作
- 二叉树:450.搜索树中的删除操作
- 二叉树:669.修剪二叉搜索树
- 二叉树:108.将有序数组转换为二叉搜索树
- 二叉树:538.把二叉搜索树转换为累加树
- 二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
回溯算法
- 关于回溯算法,你该了解这些!
- 回溯算法:77.组合
- 回溯算法:77.组合优化
- 回溯算法:216.组合总和III
- 回溯算法:17.电话号码的字母组合
- 本周小结!(回溯算法系列一)
- 回溯算法:39.组合总和
- 回溯算法:40.组合总和II
- 回溯算法:131.分割回文串
- 回溯算法:93.复原IP地址
- 回溯算法:78.子集
- 本周小结!(回溯算法系列二)
- 回溯算法:90.子集II
- 回溯算法:491.递增子序列
- 回溯算法:46.全排列
- 回溯算法:47.全排列II
- 本周小结!(回溯算法系列三)
- 回溯算法去重问题的另一种写法
- 回溯算法:332.重新安排行程
- 回溯算法:51.N皇后
- 回溯算法:37.解数独
- 回溯算法总结篇
贪心算法
- 关于贪心算法,你该了解这些!
- 贪心算法:455.分发饼干
- 贪心算法:376.摆动序列
- 贪心算法:53.最大子序和
- 本周小结!(贪心算法系列一)
- 贪心算法:122.买卖股票的最佳时机II
- 贪心算法:55.跳跃游戏
- 贪心算法:45.跳跃游戏II
- 贪心算法:1005.K次取反后最大化的数组和
- 本周小结!(贪心算法系列二)
- 贪心算法:134.加油站
- 贪心算法:135.分发糖果
- 贪心算法:860.柠檬水找零
- 贪心算法:406.根据身高重建队列
- 本周小结!(贪心算法系列三)
- 贪心算法:406.根据身高重建队列(续集)
- 贪心算法:452.用最少数量的箭引爆气球
- 贪心算法:435.无重叠区间
- 贪心算法:763.划分字母区间
- 贪心算法:56.合并区间
- 本周小结!(贪心算法系列四)
- 贪心算法:738.单调递增的数字
- 贪心算法:968.监控二叉树
- 贪心算法:总结篇!(每逢总结必经典)
动态规划
动态规划专题已经开始啦,来不及解释了,小伙伴们上车别掉队!
- 关于动态规划,你该了解这些!
- 动态规划:509.斐波那契数
- 动态规划:70.爬楼梯
- 动态规划:746.使用最小花费爬楼梯
- 本周小结!(动态规划系列一)
- 动态规划:62.不同路径
- 动态规划:63.不同路径II
- 动态规划:343.整数拆分
- 动态规划:96.不同的二叉搜索树
- 本周小结!(动态规划系列二)
背包问题系列:
- 动态规划:01背包理论基础(二维dp数组)
- 动态规划:01背包理论基础(一维dp数组)
- 动态规划:416.分割等和子集
- 动态规划:1049.最后一块石头的重量II
- 本周小结!(动态规划系列三)
- 动态规划:494.目标和
- 动态规划:474.一和零
- 动态规划:完全背包理论基础(二维dp数组)
- 动态规划:完全背包理论基础(一维dp数组)
- 动态规划:518.零钱兑换II
- 本周小结!(动态规划系列四)
- 动态规划:377.组合总和Ⅳ
- 动态规划:70.爬楼梯(完全背包版本)
- 动态规划:322.零钱兑换
- 动态规划:279.完全平方数
- 本周小结!(动态规划系列五)
- 动态规划:139.单词拆分
- 动态规划:多重背包理论基础
- 背包问题总结篇
打家劫舍系列:
股票系列:
- 动态规划:121.买卖股票的最佳时机
- 动态规划:本周小结(系列六)
- 动态规划:122.买卖股票的最佳时机II
- 动态规划:123.买卖股票的最佳时机III
- 动态规划:188.买卖股票的最佳时机IV
- 动态规划:309.最佳买卖股票时机含冷冻期
- 动态规划:本周小结(系列七)
- 动态规划:714.买卖股票的最佳时机含手续费
- 动态规划:股票系列总结篇
子序列系列:
图论
- 图论:理论基础
- 图论:深度优先搜索理论基础
- 图论:所有可达路径
- 图论:广度优先搜索理论基础
- 图论:岛屿数量.深搜版
- 图论:岛屿数量.广搜版
- 图论:岛屿的最大面积
- 图论:孤岛的总面积
- 图论:沉没孤岛
- 图论:水流问题
- 图论:建造最大岛屿
- 图论:岛屿的周长
- 图论:字符串接龙
- 图论:有向图的完全可达性
- 图论:并查集理论基础
- 图论:寻找存在的路径
- 图论:冗余连接
- 图论:冗余连接II
- 图论:最小生成树之prim
- 图论:最小生成树之kruskal
- 图论:拓扑排序
- 图论:dijkstra(朴素版)
- 图论:dijkstra(堆优化版)
- 图论:Bellman_ford 算法
- 图论:Bellman_ford 队列优化算法(又名SPFA)
- 图论:Bellman_ford之判断负权回路
- 图论:Bellman_ford之单源有限最短路
- 图论:Floyd 算法
- 图论:A * 算法
- 图论:最短路算法总结篇
- 图论:图论总结篇
- 欢迎提交 题解修订 / 多语言实现 / 文档勘误 / 新增练习
- 请先阅读:如何提交与协作
- 致谢所有贡献者 → Contributors
大家好,我是 程序员 Carl,哈工大师兄,先后在腾讯、百度从事后端与底层技术研发,著有《代码随想录》。
添加下方企业微信,自动获取 PDF 精讲,并可选择加入刷题群:
备注格式
- 在职:姓名-城市-岗位
- 学生:姓名-学校-年级(无备注不通过)
- 本仓库所有内容均为原创,引用需 注明出处与链接。
- 严禁恶意搬运与洗稿,侵权必究。