Files
leetcode-master/README.md
youngyangyang04 c64934459c Update
2021-08-13 09:43:54 +08:00

554 lines
36 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

👉 推荐 [在线阅读](http://programmercarl.com/) (Github在国内访问经常不稳定)
> 1. **介绍**:本项目是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法,[关注作者](#关于作者)
> 2. **PDF版本** [「代码随想录」算法精讲 PDF 版本](https://mp.weixin.qq.com/s/RsdcQ9umo09R6cfnwXZlrQ) 。
> 3. **刷题顺序** README已经将刷题顺序排好了按照顺序一道一道刷就可以。
> 3. **学习社区** : 一起学习打卡/面试技巧/如何选择offer/大厂内推/职场规则/简历修改/技术分享/程序人生。欢迎加入[「代码随想录」学习社区](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ) 。
> 4. **提交代码**本项目统一使用C++语言进行讲解但已经有Java、Python、Go、JavaScript等等多语言版本感谢[这里的每一位贡献者](https://github.com/youngyangyang04/leetcode-master/graphs/contributors),如果你也想贡献代码点亮你的头像,[点击这里](https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A)了解提交代码的方式。
> 5. **转载须知** :以下所有文章皆为我([程序员Carl](https://github.com/youngyangyang04))的原创。引用本项目文章请注明出处,发现恶意抄袭或搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!
<p align="center">
<a href="https://github.com/youngyangyang04/leetcode-master" target="_blank">
<img src="https://img-blog.csdnimg.cn/20210318112734278.png" width="300"/>
</a>
<p align="center">
<a href="https://mp.weixin.qq.com/s/RsdcQ9umo09R6cfnwXZlrQ"><img src="https://img.shields.io/badge/PDF下载-代码随想录-blueviolet" alt=""></a>
<a href="https://mp.weixin.qq.com/s/b66DFkOp8OOxdZC_xLZxfw"><img src="https://img.shields.io/badge/刷题-微信群-green" alt=""></a>
<a href="https://space.bilibili.com/525438321"><img src="https://img.shields.io/badge/B站-代码随想录-orange" alt=""></a>
<a href="https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ"><img src="https://img.shields.io/badge/知识星球-代码随想录-blue" alt=""></a>
</p>
<p align="center">
<a href="https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ" target="_blank">
<img src="./pics/知识星球.png" width="600"/>
</a>
# LeetCode 刷题攻略
## 刷题攻略的背景
很多刚开始刷题的同学都有一个困惑面对leetcode上近两千道题目从何刷起。
大家平时刷题感觉效率低,浪费的时间主要在三点:
* 找题
* 找到了不应该现阶段做的题
* 没有全套的优质题解可以参考
其实我之前在知乎上回答过这个问题,回答内容大概是按照如下类型来刷数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,再从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目。
但我能设身处地的感受到:即使有这样一个整体规划,对于一位初学者甚至算法老手寻找合适自己的题目也是很困难,时间成本很高,而且题目还不一定就是经典题目。
对于刷题,我们都是想用最短的时间**按照循序渐进的难度顺序把经典题目都做一遍**,这样效率才是最高的!
所以我整理了leetcode刷题攻略一个超级详细的刷题顺序**每道题目都是我精心筛选,都是经典题目高频面试题**,大家只要按照这个顺序刷就可以了,**你没看错README已经把题目顺序都排好了文章顺序就是刷题顺序挨个刷就可以不用自己再去题海里选题了**
而且每道题目我都写了的详细题解(图文并茂,难点配有视频),力扣上我的题解都是排在对应题目的首页,质量是有目共睹的。
**那么现在我把刷题顺序都整理出来,是为了帮助更多的学习算法的同学少走弯路!**
如果你在刷leetcode强烈建议先按照本攻略刷题顺序来刷刷完了你会发现对整个知识体系有一个质的飞跃不用在题海茫然的寻找方向。
<div align="center"><strong>最新文章会首发在公众号「代码随想录」,扫码看看吧,你会发现相见恨晚!</strong></img></div>
<div align="center"><img src='./pics/公众号二维码.jpg' width=150 alt=''> </img></div>
## 如何使用该刷题攻略
电脑端还看不到留言,大家可以在公众号[「代码随想录」](https://img-blog.csdnimg.cn/20201124161234338.png),左下角有「刷题攻略」,这是手机版刷题攻略,看完就会发现有很多录友(代码随想录的朋友们)在文章下留言打卡,这份刷题顺序和题解已经陪伴了上万录友了,同时也说明文章的质量是经过上万人的考验!
欢迎每一位学习算法的小伙伴加入到这个学习阵营来!
**目前已经更新了,数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心,八个专题了,正在讲解动态规划!**
在刷题攻略中,每个专题开始都有理论基础篇,并不像是教科书般的理论介绍,而是从实战中归纳需要的基础知识。每个专题结束都有总结篇,最这个专题的归纳总结。
如果你是算法老手,这篇攻略也是复习的最佳资料,如果把每个系列对应的总结篇,快速过一遍,整个算法知识体系以及各种解法就重现脑海了。
目前「代码随想录」刷题攻略更新了:**200多篇文章精讲了200道经典算法题目共60w字的详细图解部分难点题目还搭配了20分钟左右的视频讲解**。
**这里每一篇题解,都是精品,值得仔细琢磨**
我在题目讲解中统一使用C++但你会发现下面几乎每篇题解都配有其他语言版本Java、Python、Go、JavaScript等等正是这些[热心小伙们](https://github.com/youngyangyang04/leetcode-master/graphs/contributors)的贡献的代码,当然我也会严格把控代码质量。
**所以也欢迎大家参与进来,完善题解的各个语言版本,拥抱开源,让更多小伙伴们收益**
准备好了么刷题攻略开始咯go go go
---------------------------------------------
## 前序
* [「代码随想录」后序安排](https://mp.weixin.qq.com/s/4eeGJREy6E-v6D7cR_5A4g)
* [「代码随想录」学习社区](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)
* 编程语言
* [C++面试&C++学习指南知识点整理](https://github.com/youngyangyang04/TechCPP)
* 项目
* [基于跳表的轻量级KV存储引擎](https://github.com/youngyangyang04/Skiplist-CPP)
* [Nosql数据库注入攻击系统](https://github.com/youngyangyang04/NoSQLAttack)
* 编程素养
* [看了这么多代码,谈一谈代码风格!](./problems/前序/代码风格.md)
* [力扣上的代码想在本地编译运行?](./problems/前序/力扣上的代码想在本地编译运行?.md)
* [什么是核心代码模式什么又是ACM模式](./problems/前序/什么是核心代码模式什么又是ACM模式.md)
* 工具
* [一站式vim配置](https://github.com/youngyangyang04/PowerVim)
* [保姆级Git入门教程万字详解](https://mp.weixin.qq.com/s/Q_O0ey4C9tryPZaZeJocbA)
* [程序员应该用什么用具来写文档?](./problems/前序/程序员写文档工具.md)
* 求职
* [程序员的简历应该这么写!!(附简历模板)](./problems/前序/程序员简历.md)
* [BAT级别技术面试流程和注意事项都在这里了](./problems/前序/BAT级别技术面试流程和注意事项都在这里了.md)
* [北京有这些互联网公司,你都知道么?](./problems/前序/北京互联网公司总结.md)
* [上海有这些互联网公司,你都知道么?](./problems/前序/上海互联网公司总结.md)
* [深圳有这些互联网公司,你都知道么?](./problems/前序/深圳互联网公司总结.md)
* [广州有这些互联网公司,你都知道么?](./problems/前序/广州互联网公司总结.md)
* [成都有这些互联网公司,你都知道么?](./problems/前序/成都互联网公司总结.md)
* [杭州有这些互联网公司,你都知道么?](./problems/前序/杭州互联网公司总结.md)
* 算法性能分析
* [关于时间复杂度,你不知道的都在这里!](./problems/前序/关于时间复杂度,你不知道的都在这里!.md)
* [O(n)的算法居然超时了此时的n究竟是多大](./problems/前序/On的算法居然超时了此时的n究竟是多大.md)
* [通过一道面试题目,讲一讲递归算法的时间复杂度!](./problems/前序/通过一道面试题目,讲一讲递归算法的时间复杂度!.md)
* [本周小结!(算法性能分析系列一)](./problems/周总结/20201210复杂度分析周末总结.md)
* [关于空间复杂度,可能有几个疑问?](./problems/前序/关于空间复杂度,可能有几个疑问?.md)
* [递归算法的时间与空间复杂度分析!](./problems/前序/递归算法的时间与空间复杂度分析.md)
* [刷了这么多题,你了解自己代码的内存消耗么?](./problems/前序/刷了这么多题,你了解自己代码的内存消耗么?.md)
## 社群
* [准备秋招的录友们,组织在这里!](https://mp.weixin.qq.com/s/xX4LFwZQIG_XiQAxVBrfeA)
* [准备社招的录友们,组织在这里!](https://mp.weixin.qq.com/s/mbQ3s17ZJ4LXFRb-VD58Ww)
## 知识星球精选
* [HR面注意事项](https://mp.weixin.qq.com/s/0mDyCyCBfa0DeGov3Pebnw)
* [刷题攻略要刷两遍!](https://mp.weixin.qq.com/s/e3_L7FZglY4UlTVvKolZyQ)
* [秋招进行中的迷茫与焦虑......](https://mp.weixin.qq.com/s/X15MUw4sfH_AQNHdAivEvg)
* [大厂新人培养体系应该是什么样的?](https://mp.weixin.qq.com/s/WBaPCosOljB5NEkFL2GhOQ)
* [你的简历里「专业技能」写的够专业么?](https://mp.weixin.qq.com/s/bp6y-e5FVN28H9qc8J9zrg)
* [Carl看了上百份简历总结了这些](https://mp.weixin.qq.com/s/sJa87MZD28piCOVMFkIbwQ)
* [备战2022届秋招](https://mp.weixin.qq.com/s/7q7W8Cb2-a5U5atZdOnOFA)
* [技术不太好,如果选择方向](https://mp.weixin.qq.com/s/ZCzFiAHZHLqHPLJQXNm75g)
* [刷题要不要使用库函数](https://mp.weixin.qq.com/s/6K3_OSaudnHGq2Ey8vqYfg)
* [关于实习的几点问题](https://mp.weixin.qq.com/s/xcxzi7c78kQGjvZ8hh7taA)
* [面试中遇到了发散性问题,怎么帮?](https://mp.weixin.qq.com/s/SSonDxi2pjkSVwHNzZswng)
* [英语到底重不重要!](https://mp.weixin.qq.com/s/1PRZiyF_-TVA-ipwDNjdKw)
* [计算机专业要不要读研!](https://mp.weixin.qq.com/s/c9v1L3IjqiXtkNH7sOMAdg)
* [关于提前批的一些建议](https://mp.weixin.qq.com/s/SNFiRDx8CKyjhTPlys6ywQ)
* [已经在实习的录友要如何准备秋招](https://mp.weixin.qq.com/s/ka07IPryFnfmIjByFFcXDg)
* [华为提前批已经开始了](https://mp.weixin.qq.com/s/OC35QDG8pn5OwLpCxieStw)
## 杂谈
* [「代码随想录」刷题网站上线](https://mp.weixin.qq.com/s/-6rd_g7LrVD1fuKBYk2tXQ)。
* [LeetCode-Master上榜了](https://mp.weixin.qq.com/s/wZRTrA9Rbvgq1yEkSw4vfQ)
* [上榜之后,都有哪些变化?](https://mp.weixin.qq.com/s/VJBV0qSBthjnbbmW-lctLA)
* [大半年过去了......](https://mp.weixin.qq.com/s/lubfeistPxBLSQIe5XYg5g)
* [一万录友在B站学算法](https://mp.weixin.qq.com/s/Vzq4zkMZY7erKeu0fqGLgw)
## 数组
1. [数组过于简单,但你该了解这些!](./problems/数组理论基础.md)
2. [数组:每次遇到二分法,都是一看就会,一写就废](./problems/0704.二分查找.md)
3. [数组:就移除个元素很难么?](./problems/0027.移除元素.md)
4. [数组:有序数组的平方,还有序么?](./problems/0977.有序数组的平方.md)
5. [数组:滑动窗口拯救了你](./problems/0209.长度最小的子数组.md)
6. [数组:这个循环可以转懵很多人!](./problems/0059.螺旋矩阵II.md)
7. [数组:总结篇](./problems/数组总结篇.md)
## 链表
1. [关于链表,你该了解这些!](./problems/链表理论基础.md)
2. [链表:听说用虚拟头节点会方便很多?](./problems/0203.移除链表元素.md)
3. [链表:一道题目考察了常见的五个操作!](./problems/0707.设计链表.md)
4. [链表:听说过两天反转链表又写不出来了?](./problems/0206.翻转链表.md)
5. [链表:两两交换链表中的节点](./problems/0024.两两交换链表中的节点.md)
6. [链表:删除链表的倒数第 N 个结点](./problems/0019.删除链表的倒数第N个节点.md)
7. [链表:链表相交](./problems/面试题02.07.链表相交.md)
8. [链表:环找到了,那入口呢?](./problems/0142.环形链表II.md)
9. [链表:总结篇!](./problems/链表总结篇.md)
## 哈希表
1. [关于哈希表,你该了解这些!](./problems/哈希表理论基础.md)
2. [哈希表:可以拿数组当哈希表来用,但哈希值不要太大](./problems/0242.有效的字母异位词.md)
3. [哈希表:查找常用字符](./problems/1002.查找常用字符.md)
4. [哈希表哈希值太大了还是得用set](./problems/0349.两个数组的交集.md)
5. [哈希表用set来判断快乐数](./problems/0202.快乐数.md)
6. [哈希表map等候多时了](./problems/0001.两数之和.md)
7. [哈希表其实需要哈希的地方都能找到map的身影](./problems/0454.四数相加II.md)
8. [哈希表:这道题目我做过?](./problems/0383.赎金信.md)
9. [哈希表:解决了两数之和,那么能解决三数之和么?](./problems/0015.三数之和.md)
10. [双指针法:一样的道理,能解决四数之和](./problems/0018.四数之和.md)
11. [哈希表:总结篇!(每逢总结必经典)](./problems/哈希表总结.md)
## 字符串
1. [字符串:这道题目,使用库函数一行代码搞定](./problems/0344.反转字符串.md)
2. [字符串:简单的反转还不够!](./problems/0541.反转字符串II.md)
3. [字符串:替换空格](./problems/剑指Offer05.替换空格.md)
4. [字符串:花式反转还不够!](./problems/0151.翻转字符串里的单词.md)
5. [字符串:反转个字符串还有这个用处?](./problems/剑指Offer58-II.左旋转字符串.md)
6. [帮你把KMP算法学个通透](./problems/0028.实现strStr.md)
8. [字符串KMP算法还能干这个](./problems/0459.重复的子字符串.md)
9. [字符串:总结篇!](./problems/字符串总结.md)
## 双指针法
双指针法基本都是应用在数组,字符串与链表的题目上
1. [数组:就移除个元素很难么?](./problems/0027.移除元素.md)
2. [字符串:这道题目,使用库函数一行代码搞定](./problems/0344.反转字符串.md)
3. [字符串:替换空格](./problems/剑指Offer05.替换空格.md)
4. [字符串:花式反转还不够!](./problems/0151.翻转字符串里的单词.md)
5. [链表:听说过两天反转链表又写不出来了?](./problems/0206.翻转链表.md)
6. [链表:删除链表的倒数第 N 个结点](./problems/0019.删除链表的倒数第N个节点.md)
7. [链表:链表相交](./problems/面试题02.07.链表相交.md)
8. [链表:环找到了,那入口呢?](./problems/0142.环形链表II.md)
9. [哈希表:解决了两数之和,那么能解决三数之和么?](./problems/0015.三数之和.md)
10. [双指针法:一样的道理,能解决四数之和](./problems/0018.四数之和.md)
11. [双指针法:总结篇!](./problems/双指针总结.md)
## 栈与队列
1. [栈与队列:来看看栈和队列不为人知的一面](./problems/栈与队列理论基础.md)
2. [栈与队列:我用栈来实现队列怎么样?](./problems/0232.用栈实现队列.md)
3. [栈与队列:用队列实现栈还有点别扭](./problems/0225.用队列实现栈.md)
4. [栈与队列:系统中处处都是栈的应用](./problems/0020.有效的括号.md)
5. [栈与队列:匹配问题都是栈的强项](./problems/1047.删除字符串中的所有相邻重复项.md)
6. [栈与队列:有没有想过计算机是如何处理表达式的?](./problems/0150.逆波兰表达式求值.md)
7. [栈与队列:滑动窗口里求最大值引出一个重要数据结构](./problems/0239.滑动窗口最大值.md)
8. [栈与队列:求前 K 个高频元素和队列有啥关系?](./problems/0347.前K个高频元素.md)
9. [栈与队列:总结篇!](./problems/栈与队列总结.md)
## 二叉树
题目分类大纲如下:
<img src='https://img-blog.csdnimg.cn/20210219190809451.png' width=600 alt='二叉树大纲'> </img></div>
1. [关于二叉树,你该了解这些!](./problems/二叉树理论基础.md)
2. [二叉树一入递归深似海从此offer是路人](./problems/二叉树的递归遍历.md)
3. [二叉树:听说递归能做的,栈也能做!](./problems/二叉树的迭代遍历.md)
4. [二叉树:前中后序迭代方式的写法就不能统一一下么?](./problems/二叉树的统一迭代法.md)
5. [二叉树:层序遍历登场!](./problems/0102.二叉树的层序遍历.md)
6. [二叉树:你真的会翻转二叉树么?](./problems/0226.翻转二叉树.md)
7. [本周小结!(二叉树)](./problems/周总结/20200927二叉树周末总结.md)
8. [二叉树:我对称么?](./problems/0101.对称二叉树.md)
9. [二叉树:看看这些树的最大深度](./problems/0104.二叉树的最大深度.md)
10. [二叉树:看看这些树的最小深度](./problems/0111.二叉树的最小深度.md)
11. [二叉树:我有多少个节点?](./problems/0222.完全二叉树的节点个数.md)
12. [二叉树:我平衡么?](./problems/0110.平衡二叉树.md)
13. [二叉树:找我的所有路径?](./problems/0257.二叉树的所有路径.md)
14. [本周总结!二叉树系列二](./problems/周总结/20201003二叉树周末总结.md)
15. [二叉树:以为使用了递归,其实还隐藏着回溯](./problems/二叉树中递归带着回溯.md)
16. [二叉树:做了这么多题目了,我的左叶子之和是多少?](./problems/0404.左叶子之和.md)
17. [二叉树:我的左下角的值是多少?](./problems/0513.找树左下角的值.md)
18. [二叉树:路径总和](./problems/0112.路径总和.md)
19. [二叉树:构造二叉树登场!](./problems/0106.从中序与后序遍历序列构造二叉树.md)
20. [二叉树:构造一棵最大的二叉树](./problems/0654.最大二叉树.md)
21. [本周小结!(二叉树系列三)](./problems/周总结/20201010二叉树周末总结.md)
22. [二叉树:合并两个二叉树](./problems/0617.合并二叉树.md)
23. [二叉树:二叉搜索树登场!](./problems/0700.二叉搜索树中的搜索.md)
24. [二叉树:我是不是一棵二叉搜索树](./problems/0098.验证二叉搜索树.md)
25. [二叉树:搜索树的最小绝对差](./problems/0530.二叉搜索树的最小绝对差.md)
26. [二叉树:我的众数是多少?](./problems/0501.二叉搜索树中的众数.md)
27. [二叉树:公共祖先问题](./problems/0236.二叉树的最近公共祖先.md)
28. [本周小结!(二叉树系列四)](./problems/周总结/20201017二叉树周末总结.md)
29. [二叉树:搜索树的公共祖先问题](./problems/0235.二叉搜索树的最近公共祖先.md)
30. [二叉树:搜索树中的插入操作](./problems/0701.二叉搜索树中的插入操作.md)
31. [二叉树:搜索树中的删除操作](./problems/0450.删除二叉搜索树中的节点.md)
32. [二叉树:修剪一棵搜索树](./problems/0669.修剪二叉搜索树.md)
33. [二叉树:构造一棵搜索树](./problems/0108.将有序数组转换为二叉搜索树.md)
34. [二叉树:搜索树转成累加树](./problems/0538.把二叉搜索树转换为累加树.md)
35. [二叉树:总结篇!(需要掌握的二叉树技能都在这里了)](./problems/二叉树总结篇.md)
## 回溯算法
题目分类大纲如下:
<img src='https://img-blog.csdnimg.cn/20210219192050666.png' width=600 alt='回溯算法大纲'> </img></div>
1. [关于回溯算法,你该了解这些!](./problems/回溯算法理论基础.md)
2. [回溯算法:组合问题](./problems/0077.组合.md)
3. [回溯算法:组合问题再剪剪枝](./problems/0077.组合优化.md)
4. [回溯算法:求组合总和!](./problems/0216.组合总和III.md)
5. [回溯算法:电话号码的字母组合](./problems/0017.电话号码的字母组合.md)
6. [本周小结!(回溯算法系列一)](./problems/周总结/20201030回溯周末总结.md)
7. [回溯算法:求组合总和(二)](./problems/0039.组合总和.md)
8. [回溯算法:求组合总和(三)](./problems/0040.组合总和II.md)
9. [回溯算法:分割回文串](./problems/0131.分割回文串.md)
10. [回溯算法复原IP地址](./problems/0093.复原IP地址.md)
11. [回溯算法:求子集问题!](./problems/0078.子集.md)
12. [本周小结!(回溯算法系列二)](./problems/周总结/20201107回溯周末总结.md)
13. [回溯算法:求子集问题(二)](./problems/0090.子集II.md)
14. [回溯算法:递增子序列](./problems/0491.递增子序列.md)
15. [回溯算法:排列问题!](./problems/0046.全排列.md)
16. [回溯算法:排列问题(二)](./problems/0047.全排列II.md)
17. [本周小结!(回溯算法系列三)](./problems/周总结/20201112回溯周末总结.md)
18. [回溯算法去重问题的另一种写法](./problems/回溯算法去重问题的另一种写法.md)
19. [回溯算法:重新安排行程](./problems/0332.重新安排行程.md)
20. [回溯算法N皇后问题](./problems/0051.N皇后.md)
21. [回溯算法:解数独](./problems/0037.解数独.md)
22. [一篇总结带你彻底搞透回溯算法!](./problems/回溯总结.md)
## 贪心算法
题目分类大纲如下:
<img src='https://img-blog.csdnimg.cn/20210220152245584.png' width=600 alt='贪心算法大纲'> </img></div>
1. [关于贪心算法,你该了解这些!](./problems/贪心算法理论基础.md)
2. [贪心算法:分发饼干](./problems/0455.分发饼干.md)
3. [贪心算法:摆动序列](./problems/0376.摆动序列.md)
4. [贪心算法:最大子序和](./problems/0053.最大子序和.md)
5. [本周小结!(贪心算法系列一)](./problems/周总结/20201126贪心周末总结.md)
6. [贪心算法买卖股票的最佳时机II](./problems/0122.买卖股票的最佳时机II.md)
7. [贪心算法:跳跃游戏](./problems/0055.跳跃游戏.md)
8. [贪心算法跳跃游戏II](./problems/0045.跳跃游戏II.md)
9. [贪心算法K次取反后最大化的数组和](./problems/1005.K次取反后最大化的数组和.md)
10. [本周小结!(贪心算法系列二)](./problems/周总结/20201203贪心周末总结.md)
11. [贪心算法:加油站](./problems/0134.加油站.md)
12. [贪心算法:分发糖果](./problems/0135.分发糖果.md)
13. [贪心算法:柠檬水找零](./problems/0860.柠檬水找零.md)
14. [贪心算法:根据身高重建队列](./problems/0406.根据身高重建队列.md)
15. [本周小结!(贪心算法系列三)](./problems/周总结/20201217贪心周末总结.md)
16. [贪心算法:根据身高重建队列(续集)](./problems/根据身高重建队列vector原理讲解.md)
17. [贪心算法:用最少数量的箭引爆气球](./problems/0452.用最少数量的箭引爆气球.md)
18. [贪心算法:无重叠区间](./problems/0435.无重叠区间.md)
19. [贪心算法:划分字母区间](./problems/0763.划分字母区间.md)
20. [贪心算法:合并区间](./problems/0056.合并区间.md)
21. [本周小结!(贪心算法系列四)](./problems/周总结/20201224贪心周末总结.md)
22. [贪心算法:单调递增的数字](./problems/0738.单调递增的数字.md)
23. [贪心算法:买卖股票的最佳时机含手续费](./problems/0714.买卖股票的最佳时机含手续费.md)
24. [贪心算法:我要监控二叉树!](./problems/0968.监控二叉树.md)
25. [贪心算法:总结篇!(每逢总结必经典)](./problems/贪心算法总结篇.md)
## 动态规划
动态规划专题已经开始啦,来不及解释了,小伙伴们上车别掉队!
<img src='https://code-thinking.cdn.bcebos.com/pics/动态规划-总结大纲1.jpg' width=500> </img></div>
1. [关于动态规划,你该了解这些!](./problems/动态规划理论基础.md)
2. [动态规划:斐波那契数](./problems/0509.斐波那契数.md)
3. [动态规划:爬楼梯](./problems/0070.爬楼梯.md)
4. [动态规划:使用最小花费爬楼梯](./problems/0746.使用最小花费爬楼梯.md)
5. [本周小结!(动态规划系列一)](./problems/周总结/20210107动规周末总结.md)
6. [动态规划:不同路径](./problems/0062.不同路径.md)
7. [动态规划:不同路径还不够,要有障碍!](./problems/0063.不同路径II.md)
8. [动态规划:整数拆分,你要怎么拆?](./problems/0343.整数拆分.md)
9. [动态规划:不同的二叉搜索树](./problems/0096.不同的二叉搜索树.md)
10. [本周小结!(动态规划系列二)](./problems/周总结/20210114动规周末总结.md)
背包问题系列:
<img src='https://code-thinking.cdn.bcebos.com/pics/动态规划-背包问题总结.png' width=500 alt='背包问题大纲'> </img></div>
11. [动态规划关于01背包问题你该了解这些](./problems/背包理论基础01背包-1.md)
12. [动态规划关于01背包问题你该了解这些滚动数组](./problems/背包理论基础01背包-2.md)
13. [动态规划分割等和子集可以用01背包](./problems/0416.分割等和子集.md)
14. [动态规划:最后一块石头的重量 II](./problems/1049.最后一块石头的重量II.md)
15. [本周小结!(动态规划系列三)](./problems/周总结/20210121动规周末总结.md)
16. [动态规划:目标和!](./problems/0494.目标和.md)
17. [动态规划:一和零!](./problems/0474.一和零.md)
18. [动态规划:关于完全背包,你该了解这些!](./problems/背包问题理论基础完全背包.md)
19. [动态规划:给你一些零钱,你要怎么凑?](./problems/0518.零钱兑换II.md)
20. [本周小结!(动态规划系列四)](./problems/周总结/20210128动规周末总结.md)
21. [动态规划Carl称它为排列总和](./problems/0377.组合总和Ⅳ.md)
22. [动态规划:以前我没得选,现在我选择再爬一次!](./problems/0070.爬楼梯完全背包版本.md)
23. [动态规划: 给我个机会,我再兑换一次零钱](./problems/0322.零钱兑换.md)
24. [动态规划:一样的套路,再求一次完全平方数](./problems/0279.完全平方数.md)
25. [本周小结!(动态规划系列五)](./problems/周总结/20210204动规周末总结.md)
26. [动态规划:单词拆分](./problems/0139.单词拆分.md)
27. [动态规划:关于多重背包,你该了解这些!](./problems/背包问题理论基础多重背包.md)
28. [听说背包问题很难? 这篇总结篇来拯救你了](./problems/背包总结篇.md)
打家劫舍系列:
29. [动态规划:开始打家劫舍!](./problems/0198.打家劫舍.md)
30. [动态规划:继续打家劫舍!](./problems/0213.打家劫舍II.md)
31. [动态规划:还要打家劫舍!](./problems/0337.打家劫舍III.md)
股票系列:
<img src='https://code-thinking.cdn.bcebos.com/pics/股票问题总结.jpg' width=500 alt='股票问题总结'> </img></div>
32. [动态规划:买卖股票的最佳时机](./problems/0121.买卖股票的最佳时机.md)
33. [动态规划:本周我们都讲了这些(系列六)](./problems/周总结/20210225动规周末总结.md)
34. [动态规划买卖股票的最佳时机II](./problems/0122.买卖股票的最佳时机II动态规划.md)
35. [动态规划买卖股票的最佳时机III](./problems/0123.买卖股票的最佳时机III.md)
36. [动态规划买卖股票的最佳时机IV](./problems/0188.买卖股票的最佳时机IV.md)
37. [动态规划:最佳买卖股票时机含冷冻期](./problems/0309.最佳买卖股票时机含冷冻期.md)
38. [动态规划:本周我们都讲了这些(系列七)](./problems/周总结/20210304动规周末总结.md)
39. [动态规划:买卖股票的最佳时机含手续费](./problems/0714.买卖股票的最佳时机含手续费(动态规划).md)
40. [动态规划:股票系列总结篇](./problems/动态规划-股票问题总结篇.md)
子序列系列:
<img src='https://code-thinking.cdn.bcebos.com/pics/动态规划-子序列问题总结.jpg' width=500 alt=''> </img></div>
41. [动态规划:最长递增子序列](./problems/0300.最长上升子序列.md)
42. [动态规划:最长连续递增序列](./problems/0674.最长连续递增序列.md)
43. [动态规划:最长重复子数组](./problems/0718.最长重复子数组.md)
44. [动态规划:最长公共子序列](./problems/1143.最长公共子序列.md)
45. [动态规划:不相交的线](./problems/1035.不相交的线.md)
46. [动态规划:最大子序和](./problems/0053.最大子序和(动态规划).md)
47. [动态规划:判断子序列](./problems/0392.判断子序列.md)
48. [动态规划:不同的子序列](./problems/0115.不同的子序列.md)
49. [动态规划:两个字符串的删除操作](./problems/0583.两个字符串的删除操作.md)
50. [动态规划:编辑距离](./problems/0072.编辑距离.md)
51. [为了绝杀编辑距离Carl做了三步铺垫你都知道么](./problems/为了绝杀编辑距离,卡尔做了三步铺垫.md)
52. [动态规划:回文子串](./problems/0647.回文子串.md)
53. [动态规划:最长回文子序列](./problems/0516.最长回文子序列.md)
54. [动态规划总结篇](./problems/动态规划总结篇.md)
## 单调栈
1. [单调栈:每日温度](./problems/0739.每日温度.md)
2. [单调栈下一个更大元素I](./problems/0496.下一个更大元素I.md)
3. [单调栈下一个更大元素II](./problems/0503.下一个更大元素II.md)
4. [单调栈:接雨水](./problems/0042.接雨水.md)
5. [单调栈:柱状图中最大的矩形](./problems/0084.柱状图中最大的矩形.md)
(持续更新中....
## 图论
## 十大排序
## 数论
## 高级数据结构经典题目
* 并查集
* 最小生成树
* 线段树
* 树状数组
* 字典树
## 海量数据处理
# 补充题目
以上题目是重中之重,大家至少要刷两遍以上才能彻底理解,如果熟练以上题目之后还在找其他题目练手,可以再刷以下题目:
这些题目很不错,但有的题目是和刷题攻略类似的,有的题解后面还会适当补充,所以我还没有将其纳入到刷题攻略。一些题解等日后我完善一下,再纳入到刷题攻略。
## 数组
* [1365.有多少小于当前数字的数字](./problems/1365.有多少小于当前数字的数字.md)
* [941.有效的山脉数组](./problems/0941.有效的山脉数组.md) (双指针)
* [1207.独一无二的出现次数](./problems/1207.独一无二的出现次数.md) 数组在哈希法中的经典应用
* [283.移动零](./problems/0283.移动零.md) 【数组】【双指针】
* [189.旋转数组](./problems/0189.旋转数组.md)
* [724.寻找数组的中心索引](./problems/0724.寻找数组的中心索引.md)
* [34.在排序数组中查找元素的第一个和最后一个位置](./problems/0034.在排序数组中查找元素的第一个和最后一个位置.md) (二分法)
* [922.按奇偶排序数组II](./problems/0922.按奇偶排序数组II.md)
## 链表
* [24.两两交换链表中的节点](./problems/0024.两两交换链表中的节点.md)
* [234.回文链表](./problems/0234.回文链表.md)
* [143.重排链表](./problems/0143.重排链表.md)【数组】【双向队列】【直接操作链表】
* [141.环形链表](./problems/0141.环形链表.md)
## 哈希表
* [205.同构字符串](./problems/0205.同构字符串.md):【哈希表的应用】
## 字符串
* [925.长按键入](./problems/0925.长按键入.md) 模拟匹配
* [0844.比较含退格的字符串](./problems/0844.比较含退格的字符串.md)【栈模拟】【空间更优的双指针】
## 二叉树
* [129.求根到叶子节点数字之和](./problems/0129.求根到叶子节点数字之和.md)
* [1382.将二叉搜索树变平衡](./problems/1382.将二叉搜索树变平衡.md) 构造平衡二叉搜索树
* [100.相同的树](./problems/0100.相同的树.md) 同101.对称二叉树 一个思路
* [116.填充每个节点的下一个右侧节点指针](./problems/0116.填充每个节点的下一个右侧节点指针.md)
## 贪心
* [649.Dota2参议院](./problems/0649.Dota2参议院.md) 有难度
## 动态规划
* [5.最长回文子串](./problems/0005.最长回文子串.md) 和[647.回文子串](https://mp.weixin.qq.com/s/2WetyP6IYQ6VotegepVpEw) 差不多是一样的
* [132.分割回文串II](./problems/0132.分割回文串II.md) 与647.回文子串和 5.最长回文子串 很像
* [673.最长递增子序列的个数](./problems/0673.最长递增子序列的个数.md)
## 图论
* [463.岛屿的周长](./problems/0463.岛屿的周长.md) (模拟)
* [841.钥匙和房间](./problems/0841.钥匙和房间.md) 【有向图】dfsbfs都可以
## 并查集
* [684.冗余连接](./problems/0684.冗余连接.md) 【并查集基础题目】
* [685.冗余连接II](./problems/0685.冗余连接II.md)【并查集的应用】
## 模拟
* [657.机器人能否返回原点](./problems/0657.机器人能否返回原点.md)
* [31.下一个排列](./problems/0031.下一个排列.md)
## 位运算
* [1356.根据数字二进制下1的数目排序](./problems/1356.根据数字二进制下1的数目排序.md)
# 算法模板
[各类基础算法模板](https://github.com/youngyangyang04/leetcode/blob/master/problems/算法模板.md)
# B站算法视频讲解
以下为[B站「代码随想录」](https://space.bilibili.com/525438321)算法讲解视频:
* [KMP算法理论篇](https://www.bilibili.com/video/BV1PD4y1o7nd)
* [KMP算法代码篇](https://www.bilibili.com/video/BV1M5411j7Xx)
* [回溯算法理论基础](https://www.bilibili.com/video/BV1cy4y167mM)
* [回溯算法之组合问题力扣题目77.组合)](https://www.bilibili.com/video/BV1ti4y1L7cv)
* [组合问题的剪枝操作对应力扣题目77.组合)](https://www.bilibili.com/video/BV1wi4y157er)
* [组合总和对应力扣题目39.组合总和)](https://www.bilibili.com/video/BV1KT4y1M7HJ/)
* [分割回文串对应力扣题目131.分割回文串)](https://www.bilibili.com/video/BV1c54y1e7k6)
* [二叉树理论基础](https://www.bilibili.com/video/BV1Hy4y1t7ij)
* [二叉树的递归遍历](https://www.bilibili.com/video/BV1Wh411S7xt)
* [二叉树的非递归遍历(一)](https://www.bilibili.com/video/BV15f4y1W7i2)
(持续更新中....
# 贡献者
[点此这里](https://github.com/youngyangyang04/leetcode-master/graphs/contributors)查看LeetCode-Master的所有贡献者。感谢他们补充了LeetCode-Master的其他语言版本让更多的读者收益于此项目。
# 关于作者
大家好我是程序员Carl哈工大师兄ACM 校赛、黑龙江省赛、东北四省赛金牌、亚洲区域赛铜牌获得者先后在腾讯和百度从事后端技术研发CSDN博客专家。对算法和C++后端技术有一定的见解利用工作之余重新刷leetcode。
加入刷题微信群,备注:「个人简单介绍」 + 组队刷题
也欢迎与我交流,备注:「个人简单介绍」 + 交流,围观朋友圈,做点赞之交(备注没有自我介绍不通过哦)
<a name="微信"></a>
<img src="https://img-blog.csdnimg.cn/20200814140330894.png" data-img="1" width="175" height="175">
# 公众号
更多精彩文章持续更新微信搜索「代码随想录」第一时间围观关注后回复666可以获得我的所有算法专题原创PDF。
**「代码随想录」每天准时为你推送一篇经典面试题目,帮你梳理算法知识体系,轻松学习算法!**,并且公众号里有大量学习资源,也有我自己的学习心得和方法总结,更有上万录友们在这里打卡学习。
**来看看就知道了,你会发现相见恨晚!**
<a name="公众号"></a>
![](./pics/公众号.png)