# leetcode-master(代码随想录出品) **Repository Path**: zhouhsz/leetcode-master ## Basic Information - **Project Name**: leetcode-master(代码随想录出品) - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 697 - **Created**: 2022-01-06 - **Last Updated**: 2022-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 👉 推荐 [在线阅读](http://programmercarl.com/) (Github在国内访问经常不稳定) 👉 推荐 [Gitee同步](https://gitee.com/programmercarl/leetcode-master) > 1. **介绍**:本项目是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法,[关注作者](#关于作者) > 2. **PDF版本** : [「代码随想录」算法精讲 PDF 版本](https://programmercarl.com/other/algo_pdf.html) 。 > 3. **刷题顺序** : README已经将刷题顺序排好了,按照顺序一道一道刷就可以。 > 4. **学习社区** : 一起学习打卡/面试技巧/如何选择offer/大厂内推/职场规则/简历修改/技术分享/程序人生。欢迎加入[「代码随想录」知识星球](https://programmercarl.com/other/kstar.html) 。 > 5. **提交代码**:本项目统一使用C++语言进行讲解,但已经有Java、Python、Go、JavaScript等等多语言版本,感谢[这里的每一位贡献者](https://github.com/youngyangyang04/leetcode-master/graphs/contributors),如果你也想贡献代码点亮你的头像,[点击这里](https://mp.weixin.qq.com/s/tqCxrMEU-ajQumL1i8im9A)了解提交代码的方式。 > 6. **转载须知** :以下所有文章皆为我([程序员Carl](https://github.com/youngyangyang04))的原创。引用本项目文章请注明出处,发现恶意抄袭或搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!

《代码随想录》正式出版啦!!录友专属福利,点击下方可以享五折优惠!详细可以点击这里

# LeetCode 刷题攻略 ## 刷题攻略的背景 很多刚开始刷题的同学都有一个困惑:面对leetcode上近两千道题目,从何刷起。 大家平时刷题感觉效率低,浪费的时间主要在三点: * 找题 * 找到了不应该现阶段做的题 * 没有全套的优质题解可以参考 其实我之前在知乎上回答过这个问题,回答内容大概是按照如下类型来刷数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,再从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目。 但我能设身处地的感受到:即使有这样一个整体规划,对于一位初学者甚至算法老手寻找合适自己的题目也是很困难,时间成本很高,而且题目还不一定就是经典题目。 对于刷题,我们都是想用最短的时间**按照循序渐进的难度顺序把经典题目都做一遍**,这样效率才是最高的! 所以我整理了leetcode刷题攻略:一个超级详细的刷题顺序,**每道题目都是我精心筛选,都是经典题目高频面试题**,大家只要按照这个顺序刷就可以了,**你没看错,README已经把题目顺序都排好了,文章顺序就是刷题顺序!挨个刷就可以,不用自己再去题海里选题了!** 而且每道题目我都写了的详细题解(图文并茂,难点配有视频),力扣上我的题解都是排在对应题目的首页,质量是有目共睹的。 **那么现在我把刷题顺序都整理出来,是为了帮助更多的学习算法的同学少走弯路!** 如果你在刷leetcode,强烈建议先按照本攻略刷题顺序来刷,刷完了你会发现对整个知识体系有一个质的飞跃,不用在题海茫然的寻找方向。
最新文章会首发在公众号「代码随想录」,扫码看看吧,你会发现相见恨晚!
## 如何使用该刷题攻略 电脑端还看不到留言,大家可以在公众号[「代码随想录」](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) * [ACM模式如何构造二叉树](./problems/前序/ACM模式如何构建二叉树.md) * [解密互联网大厂研发流程](./problems/前序/互联网大厂研发流程.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) ## 知识星球精选 * [秋招面试,心态很重要!](./problems/知识星球精选/秋招总结3.md) * [秋招倒霉透顶,触底反弹!](./problems/知识星球精选/秋招总结2.md) * [无竞赛,无实习,如何秋招?](./problems/知识星球精选/秋招总结1.md) * [offer总决赛,何去何从!](./problems/知识星球精选/offer总决赛,何去何从.md) * [入职后担心代码能力跟不上!](./problems/知识星球精选/入职后担心代码能力跟不上.md) * [秋招进入offer决赛圈!](./problems/知识星球精选/offer对比-决赛圈.md) * [非科班的困扰](./problems/知识星球精选/非科班的困扰.md) * [offer的选择-开奖](./problems/知识星球精选/秋招开奖.md) * [看到代码就抵触!怎么办?](./problems/知识星球精选/不喜欢写代码怎么办.md) * [遭遇逼签,怎么办?](./problems/知识星球精选/逼签.md) * [HR特意刁难非科班!](./problems/知识星球精选/HR特意刁难非科班.md) * [offer的选择](./problems/知识星球精选/offer的选择.md) * [天下乌鸦一般黑,哪家没有PUA?](./problems/知识星球精选/天下乌鸦一般黑.md) * [初入大三,考研VS工作](./problems/知识星球精选/初入大三选择考研VS工作.md) * [非科班2021秋招总结](./problems/知识星球精选/非科班2021秋招总结.md) * [秋招下半场依然没offer,怎么办?](./problems/知识星球精选/秋招下半场依然没offer.md) * [合适自己的就是最好的](./problems/知识星球精选/合适自己的就是最好的.md) * [为什么都说客户端会消失](./problems/知识星球精选/客三消.md) * [博士转计算机如何找工作](./problems/知识星球精选/博士转行计算机.md) * [不一样的七夕](./problems/知识星球精选/不一样的七夕.md) * [HR面注意事项](./problems/知识星球精选/HR面注意事项.md) * [刷题攻略要刷两遍!](./problems/知识星球精选/刷题攻略要刷两遍.md) * [秋招进行中的迷茫与焦虑......](./problems/知识星球精选/秋招进行中的迷茫与焦虑.md) * [大厂新人培养体系应该是什么样的?](./problems/知识星球精选/大厂新人培养体系.md) * [你的简历里「专业技能」写的够专业么?](./problems/知识星球精选/专业技能可以这么写.md) * [Carl看了上百份简历,总结了这些!](./problems/知识星球精选/写简历的一些问题.md) * [备战2022届秋招](./problems/知识星球精选/备战2022届秋招.md) * [技术不太好,如果选择方向](./problems/知识星球精选/技术不好如何选择技术方向.md) * [刷题要不要使用库函数](./problems/知识星球精选/刷力扣用不用库函数.md) * [关于实习的几点问题](./problems/知识星球精选/关于实习大家的疑问.md) * [面试中遇到了发散性问题,怎么办?](./problems/知识星球精选/面试中发散性问题.md) * [英语到底重不重要!](./problems/知识星球精选/英语到底重不重要.md) * [计算机专业要不要读研!](./problems/知识星球精选/要不要考研.md) * [关于提前批的一些建议](./problems/知识星球精选/关于提前批的一些建议.md) * [已经在实习的录友要如何准备秋招](./problems/知识星球精选/如何权衡实习与秋招复习.md) * [华为提前批已经开始了](./problems/知识星球精选/提前批已经开始了.md) ## 杂谈 * [「代码随想录」刷题网站上线](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) ## 二叉树 题目分类大纲如下: 二叉树大纲 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) ## 回溯算法 题目分类大纲如下: 回溯算法大纲 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) ## 贪心算法 题目分类大纲如下: 贪心算法大纲 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) ## 动态规划 动态规划专题已经开始啦,来不及解释了,小伙伴们上车别掉队! 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) 背包问题系列: 背包问题大纲 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) 股票系列: 股票问题总结 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) 子序列系列: 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) * [35.搜索插入位置](./problems/0035.搜索插入位置.md) ## 链表 * [24.两两交换链表中的节点](./problems/0024.两两交换链表中的节点.md) * [234.回文链表](./problems/0234.回文链表.md) * [143.重排链表](./problems/0143.重排链表.md)【数组】【双向队列】【直接操作链表】 * [141.环形链表](./problems/0141.环形链表.md) * [160.相交链表](./problems/面试题02.07.链表相交.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) ## 回溯算法 * [52.N皇后II](./problems/0052.N皇后II.md) ## 贪心 * [649.Dota2参议院](./problems/0649.Dota2参议院.md) 有难度 * [1221.分割平衡字符](./problems/1221.分割平衡字符串.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) 【有向图】dfs,bfs都可以 * [127.单词接龙](./problems/0127.单词接龙.md) 广搜 ## 并查集 * [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,哈工大师兄,《代码随想录》作者,先后在腾讯和百度从事后端技术研发,CSDN博客专家。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。 加入「代码随想录」刷题小分队(微信群),可以扫下方二维码加我微信。 如果是已工作,备注:姓名-城市-岗位-组队刷题。如果学生,备注:姓名-学校-年级-组队刷题。**备注没有自我介绍不通过哦**
# 公众号 更多精彩文章持续更新,微信搜索:「代码随想录」第一时间围观,关注后回复:666,可以获得我的所有算法专题原创PDF。 **「代码随想录」每天准时为你推送一篇经典面试题目,帮你梳理算法知识体系,轻松学习算法!**,并且公众号里有大量学习资源,也有我自己的学习心得和方法总结,更有上万录友们在这里打卡学习。 **来看看就知道了,你会发现相见恨晚!**