0.7 LeetCode 面试最常考 100 题(按分类排序)
大约 17 分钟
0.7 LeetCode 面试最常考 100 题(按分类排序)
LeetCode 面试最常考 200 题(按分类排序)
第 1 章 数组
数组基础题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0054. 螺旋矩阵 | 题解 | 数组、矩阵、模拟 | 中等 |
0048. 旋转图像 | 题解 | 数组、数学、矩阵 | 中等 |
排序算法题目
选择排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0215. 数组中的第K个最大元素 | 题解 | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
希尔排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0912. 排序数组 | 题解 | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
归并排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0912. 排序数组 | 题解 | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0088. 合并两个有序数组 | 题解 | 数组、双指针、排序 | 简单 |
快速排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0912. 排序数组 | 题解 | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0169. 多数元素 | 题解 | 数组、哈希表、分治、计数、排序 | 简单 |
堆排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0912. 排序数组 | 题解 | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0215. 数组中的第K个最大元素 | 题解 | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
计数排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0912. 排序数组 | 题解 | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
桶排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0912. 排序数组 | 题解 | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
其他排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0136. 只出现一次的数字 | 题解 | 位运算、数组 | 简单 |
0056. 合并区间 | 题解 | 数组、排序 | 中等 |
0179. 最大数 | 题解 | 贪心、数组、字符串、排序 | 中等 |
二分查找题目
二分下标题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0704. 二分查找 | 题解 | 数组、二分查找 | 简单 |
0034. 在排序数组中查找元素的第一个和最后一个位置 | 题解 | 数组、二分查找 | 中等 |
0153. 寻找旋转排序数组中的最小值 | 题解 | 数组、二分查找 | 中等 |
0033. 搜索旋转排序数组 | 题解 | 数组、二分查找 | 中等 |
0162. 寻找峰值 | 题解 | 数组、二分查找 | 中等 |
0004. 寻找两个正序数组的中位数 | 题解 | 数组、二分查找、分治 | 困难 |
0240. 搜索二维矩阵 II | 题解 | 数组、二分查找、分治、矩阵 | 中等 |
二分答案题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0069. x 的平方根 | 题解 | 数学、二分查找 | 简单 |
双指针题目
对撞指针题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0015. 三数之和 | 题解 | 数组、双指针、排序 | 中等 |
快慢指针题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0283. 移动零 | 题解 | 数组、双指针 | 简单 |
0088. 合并两个有序数组 | 题解 | 数组、双指针、排序 | 简单 |
分离双指针题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0415. 字符串相加 | 题解 | 数学、字符串、模拟 | 简单 |
滑动窗口题目
固定长度窗口题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0239. 滑动窗口最大值 | 题解 | 队列、数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
不定长度窗口题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0003. 无重复字符的最长子串 | 题解 | 哈希表、字符串、滑动窗口 | 中等 |
0076. 最小覆盖子串 | 题解 | 哈希表、字符串、滑动窗口 | 困难 |
0718. 最长重复子数组 | 题解 | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
第 2 章 链表
链表经典题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0083. 删除排序链表中的重复元素 | 题解 | 链表 | 简单 |
0082. 删除排序链表中的重复元素 II | 题解 | 链表、双指针 | 中等 |
0206. 反转链表 | 题解 | 递归、链表 | 简单 |
0092. 反转链表 II | 题解 | 链表 | 中等 |
0025. K 个一组翻转链表 | 题解 | 递归、链表 | 困难 |
0234. 回文链表 | 题解 | 栈、递归、链表、双指针 | 简单 |
链表排序题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0148. 排序链表 | 题解 | 链表、双指针、分治、排序、归并排序 | 中等 |
0021. 合并两个有序链表 | 题解 | 递归、链表 | 简单 |
0023. 合并 K 个升序链表 | 题解 | 链表、分治、堆(优先队列)、归并排序 | 困难 |
链表双指针题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0141. 环形链表 | 题解 | 哈希表、链表、双指针 | 简单 |
0142. 环形链表 II | 题解 | 哈希表、链表、双指针 | 中等 |
0160. 相交链表 | 题解 | 哈希表、链表、双指针 | 简单 |
0019. 删除链表的倒数第 N 个结点 | 题解 | 链表、双指针 | 中等 |
LCR 140. 训练计划 II | 题解 | 链表、双指针 | 简单 |
0143. 重排链表 | 题解 | 栈、递归、链表、双指针 | 中等 |
0002. 两数相加 | 题解 | 递归、链表、数学 | 中等 |
第 3 章 堆栈、队列、哈希表
堆栈基础题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0155. 最小栈 | 题解 | 栈、设计 | 中等 |
0020. 有效的括号 | 题解 | 栈、字符串 | 简单 |
0227. 基本计算器 II | 题解 | 栈、数学、字符串 | 中等 |
0232. 用栈实现队列 | 题解 | 栈、设计、队列 | 简单 |
0394. 字符串解码 | 题解 | 栈、递归、字符串 | 中等 |
0032. 最长有效括号 | 题解 | 栈、字符串、动态规划 | 困难 |
单调栈
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0042. 接雨水 | 题解 | 栈、数组、双指针、动态规划、单调栈 | 困难 |
队列基础题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0225. 用队列实现栈 | 题解 | 栈、设计、队列 | 简单 |
优先队列题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0023. 合并 K 个升序链表 | 题解 | 链表、分治、堆(优先队列)、归并排序 | 困难 |
0239. 滑动窗口最大值 | 题解 | 队列、数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
哈希表题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0001. 两数之和 | 题解 | 数组、哈希表 | 简单 |
0015. 三数之和 | 题解 | 数组、双指针、排序 | 中等 |
0041. 缺失的第一个正数 | 题解 | 数组、哈希表 | 困难 |
0128. 最长连续序列 | 题解 | 并查集、数组、哈希表 | 中等 |
0136. 只出现一次的数字 | 题解 | 位运算、数组 | 简单 |
第 4 章 字符串
字符串基础题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0003. 无重复字符的最长子串 | 题解 | 哈希表、字符串、滑动窗口 | 中等 |
0005. 最长回文子串 | 题解 | 双指针、字符串、动态规划 | 中等 |
0415. 字符串相加 | 题解 | 数学、字符串、模拟 | 简单 |
0151. 反转字符串中的单词 | 题解 | 双指针、字符串 | 中等 |
0043. 字符串相乘 | 题解 | 数学、字符串、模拟 | 中等 |
0014. 最长公共前缀 | 题解 | 字典树、字符串 | 简单 |
第 5 章 树
二叉树的遍历题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0144. 二叉树的前序遍历 | 题解 | 栈、树、深度优先搜索、二叉树 | 简单 |
0094. 二叉树的中序遍历 | 题解 | 栈、树、深度优先搜索、二叉树 | 简单 |
0102. 二叉树的层序遍历 | 题解 | 树、广度优先搜索、二叉树 | 中等 |
0103. 二叉树的锯齿形层序遍历 | 题解 | 树、广度优先搜索、二叉树 | 中等 |
0236. 二叉树的最近公共祖先 | 题解 | 树、深度优先搜索、二叉树 | 中等 |
0104. 二叉树的最大深度 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0112. 路径总和 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0113. 路径总和 II | 题解 | 树、深度优先搜索、回溯、二叉树 | 中等 |
0101. 对称二叉树 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0124. 二叉树中的最大路径和 | 题解 | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0199. 二叉树的右视图 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0226. 翻转二叉树 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
二叉树的还原题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0105. 从前序与中序遍历序列构造二叉树 | 题解 | 树、数组、哈希表、分治、二叉树 | 中等 |
二叉搜索树题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0098. 验证二叉搜索树 | 题解 | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
0110. 平衡二叉树 | 题解 | 树、深度优先搜索、二叉树 | 简单 |
并查集题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0128. 最长连续序列 | 题解 | 并查集、数组、哈希表 | 中等 |
第 6 章 图论
图的深度优先搜索题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0200. 岛屿数量 | 题解 | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0695. 岛屿的最大面积 | 题解 | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0144. 二叉树的前序遍历 | 题解 | 栈、树、深度优先搜索、二叉树 | 简单 |
0094. 二叉树的中序遍历 | 题解 | 栈、树、深度优先搜索、二叉树 | 简单 |
0129. 求根节点到叶节点数字之和 | 题解 | 树、深度优先搜索、二叉树 | 中等 |
0124. 二叉树中的最大路径和 | 题解 | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0199. 二叉树的右视图 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0543. 二叉树的直径 | 题解 | 树、深度优先搜索、二叉树 | 简单 |
0662. 二叉树最大宽度 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
图的广度优先搜索题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0200. 岛屿数量 | 题解 | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0322. 零钱兑换 | 题解 | 广度优先搜索、数组、动态规划 | 中等 |
0199. 二叉树的右视图 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0662. 二叉树最大宽度 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
第 7 章 基础算法
枚举算法题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0001. 两数之和 | 题解 | 数组、哈希表 | 简单 |
0078. 子集 | 题解 | 位运算、数组、回溯 | 中等 |
0221. 最大正方形 | 题解 | 数组、动态规划、矩阵 | 中等 |
递归算法题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0024. 两两交换链表中的节点 | 题解 | 递归、链表 | 中等 |
0206. 反转链表 | 题解 | 递归、链表 | 简单 |
0092. 反转链表 II | 题解 | 链表 | 中等 |
0021. 合并两个有序链表 | 题解 | 递归、链表 | 简单 |
0070. 爬楼梯 | 题解 | 记忆化搜索、数学、动态规划 | 简单 |
0104. 二叉树的最大深度 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0124. 二叉树中的最大路径和 | 题解 | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0226. 翻转二叉树 | 题解 | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
分治算法题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0053. 最大子数组和 | 题解 | 数组、分治、动态规划 | 中等 |
0023. 合并 K 个升序链表 | 题解 | 链表、分治、堆(优先队列)、归并排序 | 困难 |
0004. 寻找两个正序数组的中位数 | 题解 | 数组、二分查找、分治 | 困难 |
0169. 多数元素 | 题解 | 数组、哈希表、分治、计数、排序 | 简单 |
0014. 最长公共前缀 | 题解 | 字典树、字符串 | 简单 |
回溯算法题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0046. 全排列 | 题解 | 数组、回溯 | 中等 |
0022. 括号生成 | 题解 | 字符串、动态规划、回溯 | 中等 |
0078. 子集 | 题解 | 位运算、数组、回溯 | 中等 |
0039. 组合总和 | 题解 | 数组、回溯 | 中等 |
0093. 复原 IP 地址 | 题解 | 字符串、回溯 | 中等 |
贪心算法题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0053. 最大子数组和 | 题解 | 数组、分治、动态规划 | 中等 |
0056. 合并区间 | 题解 | 数组、排序 | 中等 |
0122. 买卖股票的最佳时机 II | 题解 | 贪心、数组、动态规划 | 中等 |
位运算题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0136. 只出现一次的数字 | 题解 | 位运算、数组 | 简单 |
第 8 章 动态规划
动态规划题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0070. 爬楼梯 | 题解 | 记忆化搜索、数学、动态规划 | 简单 |
0121. 买卖股票的最佳时机 | 题解 | 数组、动态规划 | 简单 |
0322. 零钱兑换 | 题解 | 广度优先搜索、数组、动态规划 | 中等 |
0300. 最长递增子序列 | 题解 | 数组、二分查找、动态规划 | 中等 |
1143. 最长公共子序列 | 题解 | 字符串、动态规划 | 中等 |
0718. 最长重复子数组 | 题解 | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
0064. 最小路径和 | 题解 | 数组、动态规划、矩阵 | 中等 |
0072. 编辑距离 | 题解 | 字符串、动态规划 | 中等 |
0032. 最长有效括号 | 题解 | 栈、字符串、动态规划 | 困难 |
0221. 最大正方形 | 题解 | 数组、动态规划、矩阵 | 中等 |
0062. 不同路径 | 题解 | 数学、动态规划、组合数学 | 中等 |
0152. 乘积最大子数组 | 题解 | 数组、动态规划 | 中等 |
0198. 打家劫舍 | 题解 | 数组、动态规划 | 中等 |
补充题目
设计数据结构题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0146. LRU 缓存 | 题解 | 设计、哈希表、链表、双向链表 | 中等 |
模拟题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0008. 字符串转换整数 (atoi) | 题解 | 字符串 | 中等 |
0165. 比较版本号 | 题解 | 双指针、字符串 | 中等 |
0468. 验证IP地址 | 题解 | 字符串 | 中等 |
思维锻炼题目
标题 | 题解 | 标签 | 难度 |
---|---|---|---|
0031. 下一个排列 | 题解 | 数组、双指针 | 中等 |
0470. 用 Rand7() 实现 Rand10() | 题解 | 数学、拒绝采样、概率与统计、随机化 | 中等 |
参考资料
- 【清单】CodeTop 企业题库