LeetCode题解分类汇总(包括剑指Offer和程序员面试金典,持续更新)
LeetCode题解汇总(包括剑指Offer和程序员面试金典,持续更新))
剑指Offer
数据结构
链表
序号 | 题目 | 难度 |
---|---|---|
06 | 从尾到头打印链表 | 简单 |
18 | 删除链表的节点 | 简单 |
22 | 链表中倒数第k个节点 | 简单 |
24 | 反转链表 | 简单 |
25 | 合并两个排序的链表 | 简单 |
35 | 复杂链表的复制 | 中等 |
52 | 两个链表的第一个公共节点 | 简单 |
二叉树
序号 | 题目 | 难度 |
---|---|---|
07 | 重建二叉树 | 中等 |
26 | 树的子结构 | 中等 |
27 | 二叉树的镜像 | 简单 |
28 | 对称的二叉树 | 简单 |
32 - I | 从上到下打印二叉树 | 中等 |
32 - II | 从上到下打印二叉树 II | 简单 |
32 - III | 从上到下打印二叉树 III | 中等 |
33 | 二叉搜索树的后序遍历序列 | 中等 |
34 | 二叉树中和为某一值的路径 | 中等 |
36 | 二叉搜索树与双向链表 | 中等 |
37 | 序列化二叉树 | 困难 |
54 | 二叉搜索树的第k大节点 | 简单 |
55 - I | 二叉树的深度 | 简单 |
55 - II | 平衡二叉树 | 简单 |
68 - I | 二叉搜索树的最近公共祖先 | 简单 |
68 - II | 二叉树的最近公共祖先 | 简单 |
栈和队列
序号 | 题目 | 难度 |
---|---|---|
09 | 用两个栈实现队列 | 简单 |
30 | 包含min函数的栈 | 简单 |
31 | 栈的压入、弹出序列 | 中等 |
58 - I | 翻转单词顺序 | 简单 |
59 - I | 滑动窗口的最大值 | 简单 |
59 - II | 队列的最大值 | 中等 |
堆
序号 | 题目 | 难度 |
---|---|---|
40 | 最小的k个数 | 简单 |
41 | 数据流中的中位数 | 困难 |
字符串
序号 | 题目 | 难度 |
---|---|---|
19 | 正则表达式匹配 | 困难 |
20 | 表示数值的字符串 | 中等 |
58 - II | 左旋转字符串 | 简单 |
67 | 把字符串转换成整数 | 中等 |
哈希表
序号 | 题目 | 难度 |
---|---|---|
50 | 第一个只出现一次的字符 | 简单 |
56 - II | 数组中数字出现的次数 II | 中等 |
57 | 和为s的两个数字 | 简单 |
位运算
序号 | 题目 | 难度 |
---|---|---|
15 | 二进制中1的个数 | 简单 |
56 - I | 数组中数字出现的次数 | 中等 |
64 | 求1+2+…+n | 中等 |
65 | 不用加减乘除做加法 | 简单 |
图
序号 | 题目 | 难度 |
---|---|---|
12 | 矩阵中的路径 | 中等 |
13 | 机器人的运动范围 | 中等 |
算法
动态规划
序号 | 题目 | 难度 |
---|---|---|
10- I | 斐波那契数列 | 简单 |
10- II | 青蛙跳台阶问题 | 简单 |
14- I | 剪绳子 | 中等 |
14- II | 剪绳子 II | 中等 |
39 | 数组中出现次数超过一半的数字 | 简单 |
42 | 连续子数组的最大和 | 简单 |
46 | 把数字翻译成字符串 | 中等 |
47 | 礼物的最大价值 | 中等 |
60 | n个骰子的点数 | 简单 |
63 | 股票的最大利润 | 中等 |
贪心
序号 | 题目 | 难度 |
---|---|---|
45 | 跳跃游戏 II | 中等 |
查找
序号 | 题目 | 难度 |
---|---|---|
04 | 二维数组中的查找 | 简单 |
53 - I | 在排序数组中查找数字 I | 简单 |
53 - II | 0~n-1中缺失的数字 | 简单 |
排序
序号 | 题目 | 难度 |
---|---|---|
45 | 把数组排成最小的数 | 中等 |
双指针
序号 | 题目 | 难度 |
---|---|---|
21 | 调整数组顺序使奇数位于偶数前面 | 简单 |
48 | 最长不含重复字符的子字符串 | 中等 |
57 - II | 和为s的连续正数序列 | 简单 |
回溯
序号 | 题目 | 难度 |
---|---|---|
38 | 字符串的排列 | 中等 |
数学
序号 | 题目 | 难度 |
---|---|---|
17 | 打印从1到最大的n位数 | 简单 |
43 | 1~n整数中1出现的次数 | 中等 |
44 | 数字序列中某一位的数字 | 中等 |
49 | 丑数 | 中等 |
61 | 扑克牌中的顺子 | 简单 |
62 | 圆圈中最后剩下的数字 | 简单 |
其它
序号 | 题目 | 难度 |
---|---|---|
03 | 数组中重复的数字 | 简单 |
05 | 替换空格 | 简单 |
11 | 旋转数组的最小数字 | 简单 |
16 | 数值的整数次方 | 中等 |
29 | 顺时针打印矩阵 | 简单 |
51 | 数组中的逆序对 | 困难 |
66 | 构建乘积数组 | 简单 |
程序员面试金典
数据结构
字符串
序号 | 题目 | 难度 |
---|---|---|
01.01 | 判定字符是否唯一 | 简单 |
01.02 | 判定是否互为字符重排 | 简单 |
01.03 | URL化 | 简单 |
01.04 | 回文排列 | 简单 |
01.05 | 一次编辑 | 中等 |
01.06 | 字符串压缩 | 简单 |
01.09 | 字符串轮转 | 简单 |
链表
序号 | 题目 | 难度 |
---|---|---|
02.03 | 删除中间节点 | 简单 |
02.04 | 分割链表 | 中等 |
02.05 | 链表求和 | 中等 |
02.06 | 回文链表 | 简单 |
02.07 | 链表相交 | 简单 |
02.08 | 环路检测 | 中等 |
数组
序号 | 题目 | 难度 |
---|---|---|
01.08 | 零矩阵 | 中等 |
08.03 | 魔术索引 | 简单 |
17.04 | 消失的数字 | 简单 |
17.10 | 主要元素 | 简单 |
栈
序号 | 题目 | 难度 |
---|---|---|
03.01 | 三合一 | 简单 |
03.02 | 栈的最小值 | 简单 |
03.03 | 堆盘子 | 中等 |
03.04 | 化栈为队 | 简单 |
03.05 | 栈排序 | 中等 |
树
序号 | 题目 | 难度 |
---|---|---|
04.02 | 最小高度树 | 简单 |
04.08 | 首个共同祖先 | 中等 |
哈希表
序号 | 题目 | 难度 |
---|---|---|
02.01 | 移除重复节点 | 简单 |
其它
序号 | 题目 | 难度 |
---|---|---|
01.07 | 旋转矩阵 | 中等 |
算法
排序
序号 | 题目 | 难度 |
---|---|---|
10.01 | 合并排序的数组 | 简单 |
双指针
序号 | 题目 | 难度 |
---|---|---|
02.02 | 返回倒数第 k 个节点 | 简单 |
动态规划
序号 | 题目 | 难度 |
---|---|---|
08.01 | 三步问题 | 简单 |
08.11 | 硬币 | 中等 |
16.17 | 连续数列 | 简单 |
17.16 | 按摩师 | 简单 |
LeetCode
数据结构
链表
序号 | 题目 | 难度 |
---|---|---|
21 | 合并两个有序链表 | 简单 |
23 | 合并K个排序链表 | 困难 |
138 | 复制带随机指针的链表 | 中等 |
160 | 相交链表 | 简单 |
206 | 反转链表 | 简单 |
445 | 两数相加 II | 中等 |
876 | 链表的中间结点 | 简单 |
二叉树
序号 | 题目 | 难度 |
---|---|---|
101 | 对称二叉树 | 简单 |
104 | 二叉树的最大深度 | 简单 |
105 | 从前序与中序遍历序列构造二叉树 | 中等 |
110 | 平衡二叉树 | 简单 |
113 | 路径总和 II | 中等 |
199 | 二叉树的右视图 | 中等 |
226 | 翻转二叉树 | 简单 |
235 | 二叉搜索树的最近公共祖先 | 简单 |
236 | 二叉树的最近公共祖先 | 中等 |
297 | 二叉树的序列化与反序列化 | 困难 |
572 | 另一个树的子树 | 简单 |
栈和队列
序号 | 题目 | 难度 |
---|---|---|
151 | 翻转字符串里的单词 | 中等 |
155 | 最小栈 | 简单 |
239 | 滑动窗口最大值 | 困难 |
946 | 验证栈序列 | 中等 |
哈希表
序号 | 题目 | 难度 |
---|---|---|
3 | 无重复字符的最长子串 | 中等 |
202 | 快乐数 | 简单 |
1060 | 拼写单词 | 简单 |
图
序号 | 题目 | 难度 |
---|---|---|
200 | 岛屿数量 | 中等 |
位运算
序号 | 题目 | 难度 |
---|---|---|
191 | 位1的个数 | 简单 |
260 | 只出现一次的数字 III | 中等 |
其它
序号 | 题目 | 难度 |
---|---|---|
48 | 旋转图像 | 中等 |
59 | 螺旋矩阵 | 简单 |
1413 | 拥有最多糖果的孩子 | 简单 |
算法
动态规划
序号 | 题目 | 难度 |
---|---|---|
53 | 最大子序和 | 简单 |
509 | 斐波那契数 | 简单 |
983 | 最低票价 | 中等 |
贪心
序号 | 题目 | 难度 |
---|---|---|
55 | 跳跃游戏 | 中等 |
二分查找
序号 | 题目 | 难度 |
---|---|---|
33 | 搜索旋转排序数组 | 中等 |
34 | 在排序数组中查找元素的第一个和最后一个位置 | 中等 |
回溯
序号 | 题目 | 难度 |
---|---|---|
46 | 全排列 | 中等 |
数学
序号 | 题目 | 难度 |
---|---|---|
233 | 数字 1 的个数 | 困难 |
365 | 水壶问题 | 中等 |
914 | 卡牌分组 | 简单 |
双指针
序号 | 题目 | 难度 |
---|---|---|
3 | 无重复字符的最长子串 | 中等 |
680 | 验证回文字符串 Ⅱ | 简单 |
其它
序号 | 题目 | 难度 |
---|---|---|
50 | Pow(x, n) | 中等 |
56 | 合并区间 | 中等 |
79 | 单词搜索 | 中等 |
169 | 多数元素 | 简单 |
240 | 搜索二维矩阵 II | 中等 |
836 | 矩形重叠 | 简单 |
945 | 使数组唯一的最小增量 | 中等 |
999 | 车的可用捕获量 | 简单 |
1013 | 将数组分成和相等的三个部分 | 简单 |
1071 | 字符串的最大公因子 | 简单 |
1218 | 统计「优美子数组」 | 中等 |
1371 | 每个元音包含偶数次的最长子字符串 | 中等 |