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 | 每个元音包含偶数次的最长子字符串 | 中等 |

浙公网安备 33010602011771号