👉 推荐 在线阅读 (Github在国内访问经常不稳定)
👉 推荐 Gitee同步
- 介绍 :本项目是一套完整的刷题计划,旨在帮助大家少走弯路,循序渐进学算法,关注作者
- 正式出版 :《代码随想录》 。
- PDF版本 :「代码随想录」算法精讲 PDF 版本 。
- 算法公开课 :《代码随想录》算法视频公开课 。
- 最强八股文 :代码随想录知识星球精华PDF 。
- 刷题顺序 :README已经将刷题顺序排好了,按照顺序一道一道刷就可以。
- 学习社区 :一起学习打卡/面试技巧/如何选择offer/大厂内推/职场规则/简历修改/技术分享/程序人生。欢迎加入「代码随想录」知识星球 。
- 提交代码 :本项目统一使用C++语言进行讲解,但已经有Java、Python、Go、JavaScript等等多语言版本,感谢这里的每一位贡献者,如果你也想贡献代码点亮你的头像,点击这里了解提交代码的方式。
- 转载须知 :以下所有文章皆为我(程序员Carl)的原创。引用本项目文章请注明出处,发现恶意抄袭或搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境!
LeetCode 刷题攻略
刷题攻略的背景
很多刚开始刷题的同学都有一个困惑:面对leetcode上近两千道题目,从何刷起。
大家平时刷题感觉效率低,浪费的时间主要在三点:
- 找题
- 找到了不应该现阶段做的题
- 没有全套的优质题解可以参考
其实我之前在知乎上回答过这个问题,回答内容大概是按照如下类型来刷数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构,再从简单刷起,做了几个类型题目之后,再慢慢做中等题目、困难题目。
但我能设身处地的感受到:即使有这样一个整体规划,对于一位初学者甚至算法老手寻找合适自己的题目也是很困难,时间成本很高,而且题目还不一定就是经典题目。
对于刷题,我们都是想用最短的时间按照循序渐进的难度顺序把经典题目都做一遍,这样效率才是最高的!
所以我整理了leetcode刷题攻略:一个超级详细的刷题顺序,每道题目都是我精心筛选,都是经典题目高频面试题,大家只要按照这个顺序刷就可以了,你没看错,README已经把题目顺序都排好了,文章顺序就是刷题顺序!挨个刷就可以,不用自己再去题海里选题了!
而且每道题目我都写了的详细题解(图文并茂,难点配有视频),力扣上我的题解都是排在对应题目的首页,质量是有目共睹的。
那么现在我把刷题顺序都整理出来,是为了帮助更多的学习算法的同学少走弯路!
如果你在刷leetcode,强烈建议先按照本攻略刷题顺序来刷,刷完了你会发现对整个知识体系有一个质的飞跃,不用在题海茫然的寻找方向。
如何使用该刷题攻略
按照先面的排列顺序,从数组开始刷起就可以了,顺序都安排好了,按顺序刷就好。
在刷题攻略中,每个专题开始都有理论基础篇,并不像是教科书般的理论介绍,而是从实战中归纳需要的基础知识。每个专题结束都有总结篇,最这个专题的归纳总结。
如果你是算法老手,这篇攻略也是复习的最佳资料,如果把每个系列对应的总结篇,快速过一遍,整个算法知识体系以及各种解法就重现脑海了。
这里每一篇题解,都是精品,值得仔细琢磨。
我在题目讲解中统一使用C++,但你会发现下面几乎每篇题解都配有其他语言版本,Java、Python、Go、JavaScript等等,正是这些热心小伙们贡献的代码,当然我也会严格把控代码质量。
所以也欢迎大家参与进来,完善题解的各个语言版本,拥抱开源,让更多小伙伴们受益。
准备好了么,刷题攻略开始咯,go go go!
前序
-
编程语言
-
工具
-
求职
-
算法性能分析
数组
- 数组过于简单,但你该了解这些!
- 数组:704.二分查找
- 数组:27.移除元素
- 数组:977.有序数组的平方
- 数组:209.长度最小的子数组
- 数组:区间和
- 数组:59.螺旋矩阵II
- 数组:区间和
- 数组:开发商购买土地
- 数组:总结篇
链表
- 关于链表,你该了解这些!
- 链表:203.移除链表元素
- 链表:707.设计链表
- 链表:206.翻转链表
- 链表:24.两两交换链表中的节点
- 链表:19.删除链表的倒数第 N 个结点
- 链表:链表相交
- 链表:142.环形链表
- 链表:总结篇!
哈希表
- 关于哈希表,你该了解这些!
- 哈希表:242.有效的字母异位词
- 哈希表:1002.查找常用字符
- 哈希表:349.两个数组的交集
- 哈希表:202.快乐数
- 哈希表:1.两数之和
- 哈希表:454.四数相加II
- 哈希表:383.赎金信
- 哈希表:15.三数之和
- 双指针法:18.四数之和
- 哈希表:总结篇!
字符串
- 字符串:344.反转字符串
- 字符串:541.反转字符串II
- 字符串:替换数字
- 字符串:151.翻转字符串里的单词
- 字符串:右旋字符串
- 帮你把KMP算法学个通透
- 字符串:459.重复的子字符串
- 字符串:总结篇!
双指针法
双指针法基本都是应用在数组,字符串与链表的题目上