leetcode-cn刷题顺序

简介

是不是有许多小伙伴在刷力扣的时候感觉无从下手?从头按顺序开始刷的童鞋们可能会比较有感触,为什么才第四题就感觉很难了?没关系,本文将对力扣的 1-700 题中不需要会员的数据结构与算法题目(数据库与 shell 除外)进行分类,并推荐一个刷题的顺序。

完全零基础可以刷题吗?

不能,至少要基本掌握一门计算机语言的语法。但现在在网上随便搜一下就能搜到许多关于计算机语言的教程。当然,最好还是上一下正规的课程。

刷题顺序很重要吗?

重要。按照题目类别结构化地刷题的速度不仅更快,而且可以在刷完一类题之后进行总结。对于水平较高的小伙伴们来说,按照推荐的顺序刷,可以在 200 小时内刷完 500 多题。对于萌新们来说,按照推荐顺序刷,能更好地掌握数据结构与算法基础。

题目分类及刷题顺序推荐

一. 数组

题目分类 题目编号
数组的遍历 485495414628
统计数组中的元素 64569744844241274
数组的改变、移动 453665283
二维数组及滚动数组 118119661598419
数组的旋转 189396
特定顺序遍历二维数组 5459498
二维数组变换 5664873289
前缀和数组 303304238
题解 数组篇

二. 字符串

题目分类 题目编号
字符 520
回文串的定义 125
公共前缀 14
单词 43458
字符串的反转 344541557151
字符的统计 38738938324249451423657551696467535
数字与字符串间转换 2994125065395535375926403844381312273165481
子序列 392524521522
高精度运算 666741543306
字符串变换 482668
字符串匹配 28686459214
中心拓展法 5647

三. 数与位

题目分类 题目编号
数字的位操作 79479564231342326504263190191476461477693393172458258319405171168670233357400
简单数学题 49229507
快速幂 50372

四. 栈与递归

题目分类 题目编号
用栈访问最后若干元素 68271388
栈与计算器 150227224
栈与括号匹配 2063659132
递归 385341394

五. 链表

题目分类 题目编号
链表的删除 20323719
链表的遍历 430
链表的旋转与反转 61242069225
链表高精度加法 2445
链表的合并 2123

六. 哈希表

题目分类 题目编号
哈希表的查找、插入及删除 217633349128202500290532205166466138
哈希表与索引 1167599219220
哈希表与统计 59435055460945418
哈希表与前缀和 560523525

七. 贪心算法

题目分类 题目编号
数组与贪心算法 60512112256145557513540962117956572284524356464064816921575324517649678420
子数组与贪心算法 53134581152
子序列与贪心算法 334376659
数字与贪心 343
单调栈法 4965034563164023218485

八. 双指针法

题目分类 题目编号
头尾指针 3456801671516181142
同向双指针、滑动窗口 272680838261118764367420934385674247630
分段双指针 8632816088475
快慢指针 141142143234457287

九. 树

题目分类 题目编号
树与递归 10022210122643756361750857254365468787
树的层次遍历 102429690559662671513515637103107257623653104111112113129404199655116117
树的前序遍历 144589
树的前序序列化 606331652297449
树的后序遍历 145590
树的中序遍历与二叉搜索树 947005305382309817366945011095108109
重构二叉树 105106
二叉树的展开 114
最近公共祖先 235236
Morris中序遍历 50199
四叉树 558427

十. 图与搜索

题目分类 题目编号
图的建立与应用 565
深度优先搜索 17397
回溯法 526401363751527739216404647315566049178907993332
回溯法与表达式 241282679
回溯法与括号 22301
回溯法与贪心 488
广度优先搜索 133200695463542130417529127126433675
并查集 547684685
拓扑排序 399207210
有限状态自动机 65468

十一. 二分查找

题目分类 题目编号
二分查找应用(简单) 3743527836769441
二分查找应用(中等) 345402754363003546581624
二分查找与旋转数组 1531543381
二分查找与矩阵 74240
二分答案法 378668410483

十二.二进制运算的应用

题目分类 题目编号
异或的应用 89136137260268
与或非的应用 371318201

十三. 动态规划

题目分类 题目编号
数组中的动态规划 5097033845551982136509163955212318830932264313403
子数组、子序列中的动态规划 689413446368416279
背包问题 322518474494377
矩阵中的动态规划 62636412057668822162917496329
动态规划与字符串匹配 58372971155161321311391405141044
状态压缩动态规划 464691698638473
区间中的动态规划 486664375312546
树形dp 337124
数位dp 233600

十四. 数据结构

题目分类 题目编号
数据结构设计——栈与队列 225232284622641155
数据结构设计——哈希表 676355380381
数据结构设计——哈希与双向链表 432146460
前缀树 208211648386677472421212336440
23373378632347692502630407295480
树状数组 307315493327673
线段树 699
平衡树(set/map) 352218363

十五. 采样

题目分类 题目编号
按权值采样 528497
蓄水池抽样 382398
拒绝采样 470478519

十六. 计算几何

题目分类 题目编号
计算几何基础 593447223149
分类讨论法 335
凸包 587
覆盖问题 391

十七. 常用技巧与算法

题目分类 题目编号
博弈论 292
分块 239164
倍增法 330
拓展欧几里得算法 365
洗牌算法 384
找规律 390672
分治法 395667
排序算法 147148
线性筛 204
摩尔投票法 229

结语

希望以上的分类及顺序能帮到大家,未来也有做各分类的题解的打算,欢迎一起讨论。