LeetCode刷题顺序
作者:互联网
date: 2020-11-29 21:28:05
LeetCode刷题顺序
参考自原作者:noone_:https://leetcode-cn.com/circle/article/48kq9d/
- 笔者给其加上链接
一、数组
(1)数组的遍历
题号 | 描述 | 完成状态 |
---|---|---|
485. 最大连续1的个数 | 简单 | 1 |
495. 提莫攻击 | ||
414. 第三大的数 | 1 | |
628. 三个数的最大乘积 |
(2)统计数组中的元素
题号 | 描述 | 完成状态 |
---|---|---|
645. 错误的集合 | ||
697. 数组的度 | ||
448. 找到所有数组中消失的数字 | ||
442. 数组中重复的数据 | ||
41. 缺失的第一个正数 | ||
274. H 指数 |
(3)数组的改变、移动
题号 | 描述 | 完成状态 |
---|---|---|
453. 最小移动次数使数组元素相等 | ||
665. 非递减数列 | ||
283. 移动零 | 1 |
(4)二维数组及滚动数组
题号 | 描述 | 状态 |
---|---|---|
118. 杨辉三角 | ||
119. 杨辉三角 II | ||
661. 图片平滑器 | ||
598. 范围求和 II | ||
419. 甲板上的战舰 |
(5)数组的旋转
题号 | 描述 | 完成状态 |
---|---|---|
189. 旋转数组 | ||
396. 旋转函数 |
(6)特定顺序遍历二维数组
题号 | 描述 | 完成状态 |
---|---|---|
54. 螺旋矩阵 | ||
59. 螺旋矩阵 II | ||
498. 对角线遍历 |
(7)二维数组变换
题号 | 描述 | 完成状态 |
---|---|---|
566. 重塑矩阵 | ||
48. 旋转图像 | ||
73. 矩阵置零 | ||
289. 生命游戏 |
(8)前缀和数组
题号 | 描述 | 完成状态 |
---|---|---|
303. 区域和检索 - 数组不可变 | 模板题-前缀和 | 完成11.29 |
304. 二维区域和检索 - 矩阵不可变 | ||
238. 除自身以外数组的乘积 |
二、字符串
(1)字符
题号 | 描述 | 状态 |
---|---|---|
520. 检测大写字母 |
(2)回文串的定义
题号 | ||
---|---|---|
125. 验证回文串 |
(3)公共前缀
题号 | ||
---|---|---|
14. 最长公共前缀 |
(4)单词
题号 | ||
---|---|---|
434. 字符串中的单词数 | ||
58. 最后一个单词的长度 |
(5)字符串的反转
题号 | 描述 | 状态 |
---|---|---|
344. 反转字符串 | ||
541. 反转字符串 II | ||
557. 反转字符串中的单词 III | ||
151. 翻转字符串里的单词 |
(6)字符的统计
题号 | 描述 | 状态 |
---|---|---|
387. 字符串中的第一个唯一字符 | ||
389. 找不同 | ||
383. 赎金信 | ||
242. 有效的字母异位词 | ||
49. 字母异位词分组 | ||
451. 根据字符出现频率排序 | ||
423. 从英文中重建数字 | ||
657. 机器人能否返回原点 | ||
551. 学生出勤记录 I | ||
696. 计数二进制子串 | ||
467. 环绕字符串中唯一的子字符串 | ||
535. TinyURL 的加密与解密 |
(7)数字与字符串间转换
题号 | 描述 | 状态 |
---|---|---|
299. 猜数字游戏 | ||
412. Fizz Buzz | ||
506. 相对名次 | ||
539. 最小时间差 | ||
553. 最优除法 | ||
537. 复数乘法 | ||
592. 分数加减运算 | ||
640. 求解方程 | ||
38. 外观数列 | ||
443. 压缩字符串 | ||
8. 字符串转换整数 (atoi) | ||
13. 罗马数字转整数 | ||
12. 整数转罗马数字 | ||
273. 整数转换英文表示 | ||
165. 比较版本号 | ||
481. 神奇字符串 |
(8)子序列
题号 | 描述 | 状态 |
---|---|---|
392. 判断子序列 | ||
524. 通过删除字母匹配到字典里最长单词 | ||
521. 最长特殊序列 Ⅰ | ||
522. 最长特殊序列 II |
(9)高精度运算
题号 | 描述 | 状态 |
---|---|---|
66. 加一 | ||
67. 二进制求和 | ||
415. 字符串相加 | ||
43. 字符串相乘 | ||
306. 累加数 |
(10)字符串变换
题号 | 描述 | 状态 |
---|---|---|
482. 密钥格式化 | ||
6. Z 字形变换 | ||
68. 文本左右对齐 |
(11)字符串匹配
题号 | 描述 | 状态 |
---|---|---|
28. 实现 strStr() | ||
686. 重复叠加字符串匹配 | ||
459. 重复的子字符串 | ||
214. 最短回文串 |
(12)中心拓展法
题号 | 描述 | 状态 |
---|---|---|
5. 最长回文子串 | ||
647. 回文子串 |
三、数与位运算
1、数字的位操作
2、简单数学题
题号 | 描述 | 状态 |
---|---|---|
492. 构造矩形 | ||
29. 两数相除 | ||
507. 完美数 |
3、快速幂
题号 | 描述 | 状态 |
---|---|---|
50. Pow(x, n) | ||
372. 超级次方 |
四、 栈与递归
1、用栈访问最后若干元素
题号 | 描述 | |
---|---|---|
682. 棒球比赛 | ||
71. 简化路径 | ||
388. 文件的最长绝对路径 | 有点像2020秋招华为那场了 |
2、栈与计算器
题号 | ||
---|---|---|
150. 逆波兰表达式求值 | ||
227. 基本计算器 II | ||
224. 基本计算器 |
3、栈与括号匹配
题号 | 描述 | |
---|---|---|
20. 有效的括号 | 栈-模板题 | |
636. 函数的独占时间 | ||
591. 标签验证器 | ||
32. 最长有效括号 |
4、递归
题号 | ||
---|---|---|
385. 迷你语法分析器 | ||
341. 扁平化嵌套列表迭代器 | ||
394. 字符串解码 |
五、链表
(1)链表的删除
题号 | 描述 | 状态 |
---|---|---|
203. 移除链表元素 | 1 | |
237. 删除链表中的节点 | 1 | |
19. 删除链表的倒数第N个节点 | 1 |
(2)链表的遍历
题号 | ||
---|---|---|
430. 扁平化多级双向链表 |
(3)链表的旋转与反转
题号 | 描述 | 题目 |
---|---|---|
61. 旋转链表 | 找实习好像做过 | 1 |
24. 两两交换链表中的节点 | ||
206. 反转链表 | ||
92. 反转链表 II | ||
25. K 个一组翻转链表 |
(4)链表高精度加法
题号 | ||
---|---|---|
2. 两数相加 | ||
445. 两数相加 II |
(5)链表的合并
题号 | 描述 | 状态 |
---|---|---|
21. 合并两个有序链表 | 归并模板 | 1 |
23. 合并K个升序链表 | 归并模板 | 1 |
六、哈希表
(1)哈希表的查找、插入及删除
题号 | 描述 | 状态 |
---|---|---|
217. 存在重复元素 | 简单 | unordered_map模板,不重做! |
633. 平方数之和 | 中等 | |
349. 两个数组的交集 | 简单 | 1 |
128. 最长连续序列 | ||
202. 快乐数 | ||
500. 键盘行 | ||
290. 单词规律 | ||
532. 数组中的 k-diff 数对 | ||
205. 同构字符串 | ||
166. 分数到小数 | ||
466. 统计重复个数 | ||
138. 复制带随机指针的链表 |
(2)哈希表与索引
题号 | 描述 | 状态 |
---|---|---|
1. 两数之和 | ||
167. 两数之和 II - 输入有序数组 | ||
599. 两个列表的最小索引总和 | ||
219. 存在重复元素 II | ||
220. 存在重复元素 III |
(3)哈希表与统计
题号 | 描述 | 状态 |
---|---|---|
594. 最长和谐子序列 | ||
350. 两个数组的交集 II | ||
554. 砖墙 | ||
609. 在系统中查找重复文件 | ||
454. 四数相加 II | ||
18. 四数之和 |
(4)哈希表与前缀和
题号 | 描述 | 状态 |
---|---|---|
560. 和为K的子数组 | ||
523. 连续的子数组和 | ||
525. 连续数组 |
七、贪心算法
(1)数组与贪心算法
605、121、122、561、455、575、135、409、621、179、56、57、228、452、435、646、406、48、169、215、75、324、517、649、678、420
(2)子数组与贪心算法
53、134、581、152
(3)子序列与贪心算法
334、376、659
(4)数字与贪心
题号 | ||
---|---|---|
343. 整数拆分 |
(5)单调栈法
题号 | 描述 | 状态 |
---|---|---|
496. 下一个更大元素 I | ||
503. 下一个更大元素 II | ||
456. 132模式 | ||
316. 去除重复字母 | ||
402. 移掉K位数字 | ||
321. 拼接最大数 | ||
84. 柱状图中最大的矩形 | ||
85. 最大矩形 |
八、双指针法
1、头尾指针
题号 | 描述 | 状态 |
---|---|---|
345. 反转字符串中的元音字母 | ||
680. 验证回文字符串 Ⅱ | ||
167. 两数之和 II - 输入有序数组 | ||
15. 三数之和 | ||
16. 最接近的三数之和 | ||
18. 四数之和 | ||
11. 盛最多水的容器 | ||
42. 接雨水 |
2、同向双指针、滑动窗口
27、26、80、83、82、611、187、643、674、209、3、438、567、424、76、30
3、分段双指针
题号 | 描述 | 状态 |
---|---|---|
86. 分隔链表 | ||
328. 奇偶链表 | ||
160. 相交链表 | ||
88. 合并两个有序数组 | 想起秋招难受(重点) | |
475. 供暖器 |
4、快慢指针
题号 | 描述 | 状态 |
---|---|---|
141. 环形链表 | ||
142. 环形链表 II | ||
143. 重排链表 | ||
234. 回文链表 | ||
457. 环形数组循环 | ||
287. 寻找重复数 |
九、树(重要)
1、树与递归
题号 | 描述 | 状态 |
---|---|---|
100. 相同的树 | ||
222. 完全二叉树的节点个数 | ||
101. 对称二叉树 | ||
226. 翻转二叉树 | ||
437. 路径总和 III | ||
563. 二叉树的坡度 | ||
617. 合并二叉树 | ||
508. 出现次数最多的子树元素和 | ||
572. 另一个树的子树 | ||
543. 二叉树的直径 | ||
654. 最大二叉树 | ||
687. 最长同值路径 | ||
87. 扰乱字符串 |
2、树的层次遍历
102、429、690、559、662、671、513、515、637、103、107、257、623、653、104、111、112、113、129、404、199、655、116、117
3、树的前序遍历
题号 | ||
---|---|---|
144. 二叉树的前序遍历 | ||
589. N叉树的前序遍历 |
4、树的前序序列化
题号 | ||
---|---|---|
606. 根据二叉树创建字符串 | ||
331. 验证二叉树的前序序列化 | ||
652. 寻找重复的子树 | ||
297. 二叉树的序列化与反序列化 | ||
449. 序列化和反序列化二叉搜索树 |
5、树的后序遍历
题号 | ||
---|---|---|
145. 二叉树的后序遍历 | ||
590. N叉树的后序遍历 |
6、树的中序遍历与二叉搜索树
94、700、530、538、230、98、173、669、450、110、95、108、109
7、重构二叉树
题号 | ||
---|---|---|
105. 从前序与中序遍历序列构造二叉树 | ||
106. 从中序与后序遍历序列构造二叉树 |
8、二叉树的展开
题号 | 描述 | 状态 |
---|---|---|
114. 二叉树展开为链表 |
9、最近公共祖先
题号 | 描述 | 状态 |
---|---|---|
235. 二叉搜索树的最近公共祖先 | ||
236. 二叉树的最近公共祖先 |
10、Morris中序遍历
题号 | 描述 | 状态 |
---|---|---|
501. 二叉搜索树中的众数 | ||
99. 恢复二叉搜索树 |
11、四叉树
题号 | 描述 | 状态 |
---|---|---|
558. 四叉树交集 | ||
427. 建立四叉树 |
十、图与搜索(重要)
题目分类 题目编号
图的建立与应用 565
深度优先搜索 17、397
回溯法 526、401、36、37、51、52、77、39、216、40、46、47、31、556、60、491、78、90、79、93、332
回溯法与表达式 241、282、679
回溯法与括号 22、301
回溯法与贪心 488
广度优先搜索 133、200、695、463、542、130、417、529、127、126、433、675
并查集 547、684、685
拓扑排序 399、207、210
有限状态自动机 65、468
11、 二分查找(重要)
二分查找应用(简单) 374、35、278、367、69、441
二分查找应用(中等) 34、540、275、436、300、354、658、162、4
二分查找与旋转数组 153、154、33、81
二分查找与矩阵 74、240
二分答案法 378、668、410、483
12、二进制运算的应用
题目分类 | 题目编号 |
---|---|
异或的应用 | 89、136、137、260、268 |
与或非的应用 | 371、318、201 |
13、动态规划(重要)
(1)数组中的动态规划
(2)子数组、子序列中的动态规划
题目 | ||
---|---|---|
689. 三个无重叠子数组的最大和 | ||
413. 等差数列划分 | ||
446. 等差数列划分 II - 子序列 | ||
368. 最大整除子集 | ||
416. 分割等和子集 | ||
279. 完全平方数 |
(3)背包问题
题号 | ||
---|---|---|
322. 零钱兑换 | ||
518. 零钱兑换 II | ||
474. 一和零 | ||
494. 目标和 | ||
377. 组合总和 Ⅳ |
(4)矩阵中的动态规划
题号 | 描述 | 状态 |
---|---|---|
62. 不同路径 | ||
63. 不同路径 II | ||
64. 最小路径和 | ||
120. 三角形最小路径和 | ||
576. 出界的路径数 | ||
688. “马”在棋盘上的概率 | ||
221. 最大正方形 | ||
629. K个逆序对数组 | ||
174. 地下城游戏 | ||
96. 不同的二叉搜索树 | ||
329. 矩阵中的最长递增路径 |
(5)动态规划与字符串匹配
题号 | 描述 | 状态 |
---|---|---|
583. 两个字符串的删除操作 | ||
72. 编辑距离 | ||
97. 交错字符串 | ||
115. 不同的子序列 | ||
516. 最长回文子序列 | ||
132. 分割回文串 II | ||
131. 分割回文串 | ||
139. 单词拆分 | ||
140. 单词拆分 II | ||
514. 自由之路 | ||
10. 正则表达式匹配 | ||
44. 通配符匹配 |
(6)状态压缩动态规划
题号 | 描述 | 状态 |
---|---|---|
464. 我能赢吗 | ||
691. 贴纸拼词 | ||
698. 划分为k个相等的子集 | ||
638. 大礼包 | ||
473. 火柴拼正方形 |
(7)区间中的动态规划
题号 | 描述 | |
---|---|---|
486. 预测赢家 | ||
664. 奇怪的打印机 | ||
375. 猜数字大小 II | ||
312. 戳气球 | ||
546. 移除盒子 |
(8)树形dp
题号 | 描述 | 状态 |
---|---|---|
337. 打家劫舍 III | ||
124. 二叉树中的最大路径和 |
(9)数位dp
题号 | 描述 | 状态 |
---|---|---|
233. 数字 1 的个数 | ||
600. 不含连续1的非负整数 |
14. 设计数据结构(重要)
(1)设计——栈与队列
225、232、284、622、641、155
(2)设计——哈希表
676、355、380、381
(3)设计——哈希与双向链表
432、146、460
(4)前缀树
208、211、648、386、677、472、421、212、336、440
(5)堆
23、373、378、632、347、692、502、630、407、295、480
(6)树状数组
题号 | 描述 | 状态 |
---|---|---|
307. 区域和检索 - 数组可修改 | ||
315. 计算右侧小于当前元素的个数 | ||
493. 翻转对 | ||
327. 区间和的个数 | ||
673. 最长递增子序列的个数 |
(7)线段树
题号 | ||
---|---|---|
699. 掉落的方块 |
(8)平衡树(set/map)
题号 | ||
---|---|---|
352. 将数据流变为多个不相交区间 | ||
218. 天际线问题 | ||
363. 矩形区域不超过 K 的最大数值和 |
15、小众算法
(1)采样
题目分类 | 题目编号 |
---|---|
按权值采样 | 528、497 |
蓄水池抽样 | 382、398 |
拒绝采样 | 470、478、519 |
(2)计算几何
题目分类 | 题目编号 |
---|---|
计算几何基础 | 593、447、223、149 |
分类讨论法 | 335 |
凸包 | 587 |
覆盖问题 | 391 |
16、 常用技巧与算法
(1)博弈论
题号 | 描述 | 状态 |
---|---|---|
292. Nim 游戏 | 1 |
(2)分块
题号 | 描述 | 状态 |
---|---|---|
239. 滑动窗口最大值 | ||
164. 最大间距 |
(3)倍增法
题号 | 描述 | 状态 |
---|---|---|
330. 按要求补齐数组 |
(4)拓展欧几里得算法
题号 | ||
---|---|---|
365. 水壶问题 |
(5)洗牌算法
题号 | ||
---|---|---|
384. 打乱数组 |
(6)找规律
题号 | ||
---|---|---|
390. 消除游戏 | ||
672. 灯泡开关 Ⅱ |
(7)分治法
题号 | ||
---|---|---|
395. 至少有K个重复字符的最长子串 | ||
667. 优美的排列 II |
(8)排序算法
题号 | ||
---|---|---|
147. 对链表进行插入排序 | ||
148. 排序链表 |
(9)线性筛
题号 | ||
---|---|---|
204. 计数质数 |
(10)摩尔投票法
题号 | ||
---|---|---|
229. 求众数 II |
标签:II,顺序,状态,LeetCode,链表,数组,刷题,题号,描述 来源: https://www.cnblogs.com/hacv/p/14311406.html