leetcode分类刷题-附题号链接

12,845 阅读20分钟

题目分类及刷题顺序推荐

一. 数组

题目分类题目编号
数组的遍历485 最大连续 1 的个数
495 提莫攻击
414 第三大的数
628 三个数的最大乘积
统计数组中的元素645 错误的集合
697 数组的度
448 找到所有数组中消失的数字
442 数组中重复的数据
41 缺失的第一个正数
274 H 指数
数组的改变、移动453 最小操作次数使数组元素相等
665 非递减数列
283 移动零
二维数组及滚动数组118 杨辉三角
119 杨辉三角 II
661 图片平滑器
598 范围求和 II
419 甲板上的战舰
数组的旋转189 轮转数组
396 旋转函数
特定顺序遍历二维数组54 螺旋矩阵
59 螺旋矩阵 II
498 对角线遍历
二维数组变换566 重塑矩阵
48 旋转图像
73 矩阵置零
289 生命游戏
前缀和数组303 区域和检索 - 数组不可变
304 二维区域和检索 - 矩阵不可变
238 除自身以外数组的乘积
题解数组篇

二. 字符串

题目分类题目编号
字符520 检测大写字母
回文串的定义125 验证回文串
公共前缀14 最长公共前缀
单词434 字符串中的单词数
58 最后一个单词的长度
字符串的反转344 反转字符串
541 反转字符串 II
557 反转字符串中的单词 III
151 反转字符串中的单词
字符的统计387 字符串中的第一个唯一字符
389 找不同
383 赎金信
242 有效的字母异位词
49 字母异位词分组
451 根据字符出现频率排序
423 从英文中重建数字
657 机器人能否返回原点
551 学生出勤记录 I
696 计数二进制子串
467 环绕字符串中唯一的子字符串
535 TinyURL 的加密与解密
数字与字符串间转换299 猜数字游戏
412 Fizz Buzz
506 相对名次
539 最小时间差
553 最优除法
537 复数乘法
592 分数加减运算
640 求解方程
38 外观数列
443 压缩字符串
8 字符串转换整数 (atoi)
13 罗马数字转整数
12 整数转罗马数字
273 整数转换英文表示
165 比较版本号
481 神奇字符串
子序列392 判断子序列
524 通过删除字母匹配到字典里最长单词
521 最长特殊序列 Ⅰ
522 最长特殊序列 II
高精度运算66 加一
67 二进制求和
415 字符串相加
43 字符串相乘
306 累加数
字符串变换482 密钥格式化
6 Z 字形变换
68 文本左右对齐
字符串匹配28 找出字符串中第一个匹配项的下标
686 重复叠加字符串匹配
459 重复的子字符串
214 最短回文串
中心拓展法5 最长回文子串
647 回文子串

三. 数与位

题目分类题目编号
数字的位操作7 整数反转
9 回文数
479 最大回文数乘积
564 寻找最近的回文数
231 2 的幂
342 4 的幂
326 3 的幂
504 七进制数
263 丑数
190 颠倒二进制位
191 位 1 的个数
476 数字的补数
461 汉明距离
477 汉明距离总和
693 交替位二进制数
393 UTF-8 编码验证
172 阶乘后的零
458 可怜的小猪
258 各位相加
319 灯泡开关
405 数字转换为十六进制数
171 Excel 表列序号
168 Excel 表列名称
670 最大交换
233 数字 1 的个数
357 统计各位数字都不同的数字个数
400 第 N 位数字
简单数学题492 构造矩形
29 两数相除
507 完美数
快速幂50 Pow(x, n)
372 超级次方

四. 栈与递归

题目分类题目编号
用栈访问最后若干元素682 棒球比赛
71 简化路径
388 文件的最长绝对路径
栈与计算器150 逆波兰表达式求值
227 基本计算器 II
224 基本计算器
栈与括号匹配20 有效的括号
636 函数的独占时间
591 标签验证器
32 最长有效括号
递归385 迷你语法分析器
341 扁平化嵌套列表迭代器
394 字符串解码

五. 链表

题目分类题目编号
链表的删除203 移除链表元素
237 删除链表中的节点
19 删除链表的倒数第 N 个结点
链表的遍历430 undefined
链表的旋转与反转61 旋转链表
24 两两交换链表中的节点
206 反转链表
92 反转链表 II
25 K 个一组翻转链表
链表高精度加法2 两数相加
445 两数相加 II
链表的合并21 合并两个有序链表
23 合并 K 个升序链表

六. 哈希表

题目分类题目编号
哈希表的查找、插入及删除217 存在重复元素
633 平方数之和
349 两个数组的交集
128 最长连续序列
202 快乐数
500 键盘行
290 单词规律
532 数组中的 k-diff 数对
205 同构字符串
166 分数到小数
466 统计重复个数
138 复制带随机指针的链表
哈希表与索引1 两数之和
167 两数之和 II - 输入有序数组
599 两个列表的最小索引总和
219 存在重复元素 II
220 存在重复元素 III
哈希表与统计594 最长和谐子序列
350 两个数组的交集 II
554 砖墙
609 在系统中查找重复文件
454 四数相加 II
18 四数之和
哈希表与前缀和560 和为 K 的子数组
523 连续的子数组和
525 连续数组

七. 贪心算法

题目分类题目编号
数组与贪心算法605 种花问题
121 买卖股票的最佳时机
122 买卖股票的最佳时机 II
561 数组拆分
455 分发饼干
575 分糖果
135 分发糖果
409 最长回文串
621 任务调度器
179 最大数
56 合并区间
57 插入区间
228 汇总区间
452 用最少数量的箭引爆气球
435 无重叠区间
646 最长数对链
406 根据身高重建队列
48 旋转图像
169 多数元素
215 数组中的第 K 个最大元素
75 颜色分类
324 摆动排序 II
517 超级洗衣机
649 Dota2 参议院
678 有效的括号字符串
420 强密码检验器
子数组与贪心算法53 最大子数组和
134 加油站
581 最短无序连续子数组
152 乘积最大子数组
子序列与贪心算法334 递增的三元子序列
376 摆动序列
659 分割数组为连续子序列
数字与贪心343 整数拆分
单调栈法496 下一个更大元素 I
503 下一个更大元素 II
456 132 模式
316 去除重复字母
402 移掉 K 位数字
321 拼接最大数
84 柱状图中最大的矩形
85 最大矩形

八. 双指针法

题目分类题目编号
头尾指针345 反转字符串中的元音字母
680 验证回文串 II
167 两数之和 II - 输入有序数组
15 三数之和
16 最接近的三数之和
18 四数之和
11 盛最多水的容器
42 接雨水
同向双指针、滑动窗口27 移除元素
26 删除有序数组中的重复项
80 删除有序数组中的重复项 II
83 删除排序链表中的重复元素
82 删除排序链表中的重复元素 II
611 有效三角形的个数
187 重复的 DNA 序列
643 子数组最大平均数 I
674 最长连续递增序列
209 长度最小的子数组
3 无重复字符的最长子串
438 找到字符串中所有字母异位词
567 字符串的排列
424 替换后的最长重复字符
76 最小覆盖子串
30 串联所有单词的子串
分段双指针86 分隔链表
328 奇偶链表
160 相交链表
88 合并两个有序数组
475 供暖器
快慢指针141 环形链表
142 环形链表 II
143 重排链表
234 回文链表
457 环形数组是否存在循环
287 寻找重复数

九. 树

题目分类题目编号
树与递归100 相同的树
222 完全二叉树的节点个数
101 对称二叉树
226 翻转二叉树
437 路径总和 III
563 二叉树的坡度
617 合并二叉树
508 出现次数最多的子树元素和
572 另一棵树的子树
543 二叉树的直径
654 最大二叉树
687 最长同值路径
87 扰乱字符串
树的层次遍历102 二叉树的层序遍历
429 undefined
690 员工的重要性
559 undefined
662 二叉树最大宽度
671 二叉树中第二小的节点
513 找树左下角的值
515 在每个树行中找最大值
637 二叉树的层平均值
103 二叉树的锯齿形层序遍历
107 二叉树的层序遍历 II
257 二叉树的所有路径
623 在二叉树中增加一行
653 两数之和 IV - 输入二叉搜索树
104 二叉树的最大深度
111 二叉树的最小深度
112 路径总和
113 路径总和 II
129 求根节点到叶节点数字之和
404 左叶子之和
199 二叉树的右视图
655 输出二叉树
116 填充每个节点的下一个右侧节点指针
117 填充每个节点的下一个右侧节点指针 II
树的前序遍历144 二叉树的前序遍历
589 undefined
树的前序序列化606 根据二叉树创建字符串
331 验证二叉树的前序序列化
652 寻找重复的子树
297 二叉树的序列化与反序列化
449 序列化和反序列化二叉搜索树
树的后序遍历145 二叉树的后序遍历
590 undefined
树的中序遍历与二叉搜索树94 二叉树的中序遍历
700 undefined
530 二叉搜索树的最小绝对差
538 把二叉搜索树转换为累加树
230 二叉搜索树中第 K 小的元素
98 验证二叉搜索树
173 二叉搜索树迭代器
669 修剪二叉搜索树
450 删除二叉搜索树中的节点
110 平衡二叉树
95 不同的二叉搜索树 II
108 将有序数组转换为二叉搜索树
109 有序链表转换二叉搜索树
重构二叉树105 从前序与中序遍历序列构造二叉树
106 从中序与后序遍历序列构造二叉树
二叉树的展开114 二叉树展开为链表
最近公共祖先235 二叉搜索树的最近公共祖先
236 二叉树的最近公共祖先
Morris 中序遍历501 二叉搜索树中的众数
99 恢复二叉搜索树
四叉树558 undefined
427 undefined

十. 图与搜索

题目分类题目编号
图的建立与应用565 数组嵌套
深度优先搜索17 电话号码的字母组合
397 整数替换
回溯法526 优美的排列
401 二进制手表
36 有效的数独
37 解数独
51 N 皇后
52 N 皇后 II
77 组合
39 组合总和
216 组合总和 III
40 组合总和 II
46 全排列
47 全排列 II
31 下一个排列
556 下一个更大元素 III
60 排列序列
491 递增子序列
78 子集
90 子集 II
79 单词搜索
93 复原 IP 地址
332 重新安排行程
回溯法与表达式241 为运算表达式设计优先级
282 给表达式添加运算符
679 24 点游戏
回溯法与括号22 括号生成
301 删除无效的括号
回溯法与贪心488 祖玛游戏
广度优先搜索133 克隆图
200 岛屿数量
695 岛屿的最大面积
463 岛屿的周长
542 01 矩阵
130 被围绕的区域
417 太平洋大西洋水流问题
529 扫雷游戏
127 单词接龙
126 单词接龙 II
433 最小基因变化
675 为高尔夫比赛砍树
并查集547 省份数量
684 冗余连接
685 冗余连接 II
拓扑排序399 除法求值
207 课程表
210 课程表 II
有限状态自动机65 有效数字
468 验证 IP 地址

十一. 二分查找

题目分类题目编号
二分查找应用 (简单)374 猜数字大小
35 搜索插入位置
278 第一个错误的版本
367 有效的完全平方数
69 x 的平方根
441 排列硬币
二分查找应用 (中等)34 在排序数组中查找元素的第一个和最后一个位置
540 有序数组中的单一元素
275 H 指数 II
436 寻找右区间
300 最长递增子序列
354 俄罗斯套娃信封问题
658 找到 K 个最接近的元素
162 寻找峰值
4 寻找两个正序数组的中位数
二分查找与旋转数组153 寻找旋转排序数组中的最小值
154 寻找旋转排序数组中的最小值 II
33 搜索旋转排序数组
81 搜索旋转排序数组 II
二分查找与矩阵74 搜索二维矩阵
240 搜索二维矩阵 II
二分答案法378 有序矩阵中第 K 小的元素
668 乘法表中第 k 小的数
410 分割数组的最大值
483 最小好进制

十二. 二进制运算的应用

题目分类题目编号
异或的应用89 格雷编码
136 只出现一次的数字
137 只出现一次的数字 II
260 只出现一次的数字 III
268 丢失的数字
与或非的应用371 两整数之和
318 最大单词长度乘积
201 数字范围按位与

十三. 动态规划

题目分类题目编号
数组中的动态规划509 二叉搜索树中的中序后继 II
70 爬楼梯
338 比特位计数
45 跳跃游戏 II
55 跳跃游戏
198 打家劫舍
213 打家劫舍 II
650 只有两个键的键盘
91 解码方法
639 解码方法 II
552 学生出勤记录 II
123 买卖股票的最佳时机 III
188 买卖股票的最佳时机 IV
309 最佳买卖股票时机含冷冻期
32 最长有效括号
264 丑数 II
313 超级丑数
403 青蛙过河
子数组、子序列中的动态规划689 三个无重叠子数组的最大和
413 等差数列划分
446 等差数列划分 II - 子序列
368 最大整除子集
416 分割等和子集
279 完全平方数
背包问题322 零钱兑换
518 零钱兑换 II
474 一和零
494 目标和
377 组合总和 Ⅳ
矩阵中的动态规划62 不同路径
63 不同路径 II
64 最小路径和
120 三角形最小路径和
576 出界的路径数
688 骑士在棋盘上的概率
221 最大正方形
629 K 个逆序对数组
174 地下城游戏
96 不同的二叉搜索树
329 矩阵中的最长递增路径
动态规划与字符串匹配583 两个字符串的删除操作
72 编辑距离
97 交错字符串
115 不同的子序列
516 最长回文子序列
132 分割回文串 II
131 分割回文串
139 单词拆分
140 单词拆分 II
514 自由之路
10 正则表达式匹配
44 通配符匹配
状态压缩动态规划464 我能赢吗
691 贴纸拼词
698 划分为 k 个相等的子集
638 大礼包
473 火柴拼正方形
区间中的动态规划486 预测赢家
664 奇怪的打印机
375 猜数字大小 II
312 戳气球
546 移除盒子
树形 dp337 打家劫舍 III
124 二叉树中的最大路径和
数位 dp233 数字 1 的个数
600 不含连续 1 的非负整数

十四. 数据结构

题目分类题目编号
数据结构设计——栈与队列225 用队列实现栈
232 用栈实现队列
284 顶端迭代器
622 undefined
641 undefined
155 最小栈
数据结构设计——哈希表676 实现一个魔法字典
355 设计推特
380 O(1) 时间插入、删除和获取随机元素
381 O(1) 时间插入、删除和获取随机元素 - 允许重复
数据结构设计——哈希与双向链表432 全 O(1) 的数据结构
146 LRU 缓存
460 LFU 缓存
前缀树208 实现 Trie (前缀树)
211 添加与搜索单词 - 数据结构设计
648 单词替换
386 字典序排数
677 键值映射
472 连接词
421 数组中两个数的最大异或值
212 单词搜索 II
336 回文对
440 字典序的第 K 小数字
23 合并 K 个升序链表
373 查找和最小的 K 对数字
378 有序矩阵中第 K 小的元素
632 最小区间
347 前 K 个高频元素
692 前 K 个高频单词
502 IPO
630 课程表 III
407 接雨水 II
295 数据流的中位数
480 滑动窗口中位数
树状数组307 区域和检索 - 数组可修改
315 计算右侧小于当前元素的个数
493 翻转对
327 区间和的个数
673 最长递增子序列的个数
线段树699 掉落的方块
平衡树 (set/map)352 将数据流变为多个不相交区间
218 天际线问题
363 矩形区域不超过 K 的最大数值和

十五. 采样

题目分类题目编号
按权值采样528 交换链表中的节点
497 undefined
蓄水池抽样382 链表随机节点
398 随机数索引
拒绝采样470 undefined
478 undefined
519 范围和相等的最宽索引对

十六. 计算几何

题目分类题目编号
计算几何基础593 有效的正方形
447 回旋镖的数量
223 矩形面积
149 直线上最多的点数
分类讨论法335 路径交叉
凸包587 安装栅栏
覆盖问题391 完美矩形

十七. 常用技巧与算法

题目分类题目编号
博弈论292 Nim 游戏
分块239 滑动窗口最大值
164 最大间距
倍增法330 按要求补齐数组
拓展欧几里得算法365 水壶问题
洗牌算法384 打乱数组
找规律390 消除游戏
672 灯泡开关 Ⅱ
分治法395 至少有 K 个重复字符的最长子串
667 优美的排列 II
排序算法147 对链表进行插入排序
148 排序链表
线性筛204 计数质数
摩尔投票法229 多数元素 II

结语