07. LeetCode 面试最常考 200 题(按分类排序)
大约 29 分钟
LeetCode 面试最常考 200 题(按分类排序)
01. 数组
数组基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0189 | 轮转数组 | Python | 数组、数学、双指针 | 中等 |
0498 | 对角线遍历 | Python | 数组、矩阵、模拟 | 中等 |
0048 | 旋转图像 | Python | 数组、数学、矩阵 | 中等 |
0054 | 螺旋矩阵 | Python | 数组、矩阵、模拟 | 中等 |
0059 | 螺旋矩阵 II | Python | 数组、矩阵、模拟 | 中等 |
排序算法题目
冒泡排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0283 | 移动零 | Python | 数组、双指针 | 简单 |
选择排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0215 | 数组中的第K个最大元素 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
插入排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0075 | 颜色分类 | Python | 数组、双指针、排序 | 中等 |
希尔排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
归并排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0088 | 合并两个有序数组 | Python | 数组、双指针、排序 | 简单 |
剑指 Offer 51 | 数组中的逆序对 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
快速排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0169 | 多数元素 | Python | 数组、哈希表、分治、计数、排序 | 简单 |
堆排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
0215 | 数组中的第K个最大元素 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 中等 |
剑指 Offer 40 | 最小的k个数 | Python | 数组、分治、快速选择、排序、堆(优先队列) | 简单 |
计数排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
桶排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0912 | 排序数组 | Python | 数组、分治、桶排序、计数排序、基数排序、排序、堆(优先队列)、归并排序 | 中等 |
基数排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0164 | 最大间距 | Python | 数组、桶排序、基数排序、排序 | 困难 |
其他排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0136 | 只出现一次的数字 | Python | 位运算、数组 | 简单 |
0056 | 合并区间 | Python | 数组、排序 | 中等 |
0179 | 最大数 | Python | 贪心、数组、字符串、排序 | 中等 |
0384 | 打乱数组 | Python | 数组、数学、随机化 | 中等 |
剑指 Offer 45 | 把数组排成最小的数 | Python | 贪心、字符串、排序 | 中等 |
二分查找题目
二分下标题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0704 | 二分查找 | Python | 数组、二分查找 | 简单 |
0034 | 在排序数组中查找元素的第一个和最后一个位置 | Python | 数组、二分查找 | 中等 |
0153 | 寻找旋转排序数组中的最小值 | Python | 数组、二分查找 | 中等 |
0154 | 寻找旋转排序数组中的最小值 II | Python | 数组、二分查找 | 困难 |
0033 | 搜索旋转排序数组 | Python | 数组、二分查找 | 中等 |
0162 | 寻找峰值 | Python | 数组、二分查找 | 中等 |
0004 | 寻找两个正序数组的中位数 | Python | 数组、二分查找、分治 | 困难 |
0074 | 搜索二维矩阵 | Python | 数组、二分查找、矩阵 | 中等 |
0240 | 搜索二维矩阵 II | Python | 数组、二分查找、分治、矩阵 | 中等 |
二分答案题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0069 | x 的平方根 | Python | 数学、二分查找 | 简单 |
0287 | 寻找重复数 | Python | 位运算、数组、双指针、二分查找 | 中等 |
0050 | Pow(x, n) | Python | 递归、数学 | 中等 |
0400 | 第 N 位数字 | Python | 数学、二分查找 | 中等 |
复杂的二分查找问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0209 | 长度最小的子数组 | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
0349 | 两个数组的交集 | Python | 数组、哈希表、双指针、二分查找、排序 | 简单 |
双指针题目
对撞指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0611 | 有效三角形的个数 | Python | 贪心、数组、双指针、二分查找、排序 | 中等 |
0015 | 三数之和 | Python | 数组、双指针、排序 | 中等 |
0016 | 最接近的三数之和 | Python | 数组、双指针、排序 | 中等 |
0125 | 验证回文串 | Python | 双指针、字符串 | 简单 |
0011 | 盛最多水的容器 | Python | 贪心、数组、双指针 | 中等 |
0075 | 颜色分类 | Python | 数组、双指针、排序 | 中等 |
剑指 Offer 21 | 调整数组顺序使奇数位于偶数前面 | Python | 数组、双指针、排序 | 简单 |
0443 | 压缩字符串 | Python | 双指针、字符串 | 中等 |
快慢指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0026 | 删除有序数组中的重复项 | Python | 数组、双指针 | 简单 |
0283 | 移动零 | Python | 数组、双指针 | 简单 |
0088 | 合并两个有序数组 | Python | 数组、双指针、排序 | 简单 |
分离双指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0415 | 字符串相加 | Python | 数学、字符串、模拟 | 简单 |
滑动窗口题目
固定长度窗口题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0239 | 滑动窗口最大值 | Python | 队列、数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
不定长度窗口题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0003 | 无重复字符的最长子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0076 | 最小覆盖子串 | Python | 哈希表、字符串、滑动窗口 | 困难 |
0718 | 最长重复子数组 | Python | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
0209 | 长度最小的子数组 | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
0862 | 和至少为 K 的最短子数组 | Python | 队列、数组、二分查找、前缀和、滑动窗口、单调队列、堆(优先队列) | 困难 |
1004 | 最大连续1的个数 III | Python | 数组、二分查找、前缀和、滑动窗口 | 中等 |
02. 链表
链表经典题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0083 | 删除排序链表中的重复元素 | Python | 链表 | 简单 |
0082 | 删除排序链表中的重复元素 II | Python | 链表、双指针 | 中等 |
0206 | 反转链表 | Python | 递归、链表 | 简单 |
0092 | 反转链表 II | Python | 链表 | 中等 |
0025 | K 个一组翻转链表 | Python | 递归、链表 | 困难 |
0328 | 奇偶链表 | Python | 链表 | 中等 |
0234 | 回文链表 | Python | 栈、递归、链表、双指针 | 简单 |
0138 | 复制带随机指针的链表 | Python | 哈希表、链表 | 中等 |
0061 | 旋转链表 | Python | 链表、双指针 | 中等 |
链表排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0148 | 排序链表 | Python | 链表、双指针、分治、排序、归并排序 | 中等 |
0021 | 合并两个有序链表 | Python | 递归、链表 | 简单 |
0023 | 合并 K 个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
链表双指针题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0141 | 环形链表 | Python | 哈希表、链表、双指针 | 简单 |
0142 | 环形链表 II | Python | 哈希表、链表、双指针 | 中等 |
0160 | 相交链表 | Python | 哈希表、链表、双指针 | 简单 |
0019 | 删除链表的倒数第 N 个结点 | Python | 链表、双指针 | 中等 |
剑指 Offer 22 | 链表中倒数第k个节点 | Python | 链表、双指针 | 简单 |
0143 | 重排链表 | Python | 栈、递归、链表、双指针 | 中等 |
0002 | 两数相加 | Python | 递归、链表、数学 | 中等 |
0445 | 两数相加 II | Python | 栈、链表、数学 | 中等 |
03. 堆栈
堆栈基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1047 | 删除字符串中的所有相邻重复项 | Python | 栈、字符串 | 简单 |
0155 | 最小栈 | Python | 栈、设计 | 中等 |
0020 | 有效的括号 | Python | 栈、字符串 | 简单 |
0224 | 基本计算器 | 栈、递归、数学、字符串 | 困难 | |
0227 | 基本计算器 II | Python | 栈、数学、字符串 | 中等 |
0232 | 用栈实现队列 | Python | 栈、设计、队列 | 简单 |
剑指 Offer 09 | 用两个栈实现队列 | Python | 栈、设计、队列 | 简单 |
0394 | 字符串解码 | Python | 栈、递归、字符串 | 中等 |
0032 | 最长有效括号 | Python | 栈、字符串、动态规划 | 困难 |
0739 | 每日温度 | Python | 栈、数组、单调栈 | 中等 |
0071 | 简化路径 | 栈、字符串 | 中等 |
单调栈
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0739 | 每日温度 | Python | 栈、数组、单调栈 | 中等 |
0503 | 下一个更大元素 II | Python | 栈、数组、单调栈 | 中等 |
0042 | 接雨水 | Python | 栈、数组、双指针、动态规划、单调栈 | 困难 |
0085 | 最大矩形 | 栈、数组、动态规划、矩阵、单调栈 | 困难 |
04. 队列
队列基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0225 | 用队列实现栈 | Python | 栈、设计、队列 | 简单 |
优先队列题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0347 | 前 K 个高频元素 | Python | 数组、哈希表、分治、桶排序、计数、快速选择、排序、堆(优先队列) | 中等 |
0239 | 滑动窗口最大值 | Python | 队列、数组、滑动窗口、单调队列、堆(优先队列) | 困难 |
0295 | 数据流的中位数 | Python | 设计、双指针、数据流、排序、堆(优先队列) | 困难 |
0023 | 合并 K 个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
05. 哈希表
哈希表题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0001 | 两数之和 | Python | 数组、哈希表 | 简单 |
0015 | 三数之和 | Python | 数组、双指针、排序 | 中等 |
0041 | 缺失的第一个正数 | Python | 数组、哈希表 | 困难 |
0128 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
0136 | 只出现一次的数字 | Python | 位运算、数组 | 简单 |
0242 | 有效的字母异位词 | Python | 哈希表、字符串、排序 | 简单 |
0442 | 数组中重复的数据 | 数组、哈希表 | 中等 | |
剑指 Offer 61 | 扑克牌中的顺子 | Python | 数组、排序 | 简单 |
0268 | 丢失的数字 | Python | 位运算、数组、哈希表、数学、二分查找、排序 | 简单 |
剑指 Offer 03 | 数组中重复的数字 | Python | 数组、哈希表、排序 | 简单 |
06. 字符串
字符串基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0125 | 验证回文串 | Python | 双指针、字符串 | 简单 |
0005 | 最长回文子串 | Python | 字符串、动态规划 | 中等 |
0003 | 无重复字符的最长子串 | Python | 哈希表、字符串、滑动窗口 | 中等 |
0344 | 反转字符串 | Python | 双指针、字符串 | 简单 |
0557 | 反转字符串中的单词 III | Python | 双指针、字符串 | 简单 |
0415 | 字符串相加 | Python | 数学、字符串、模拟 | 简单 |
0151 | 反转字符串中的单词 | Python | 双指针、字符串 | 中等 |
0043 | 字符串相乘 | Python | 数学、字符串、模拟 | 中等 |
0014 | 最长公共前缀 | Python | 字典树、字符串 | 简单 |
单模式串匹配题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0459 | 重复的子字符串 | Python | 字符串、字符串匹配 | 简单 |
字典树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0208 | 实现 Trie (前缀树) | Python | 设计、字典树、哈希表、字符串 | 中等 |
0440 | 字典序的第K小数字 | 字典树 | 困难 |
07. 树
二叉树的遍历题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0144 | 二叉树的前序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0094 | 二叉树的中序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0145 | 二叉树的后序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0102 | 二叉树的层序遍历 | Python | 树、广度优先搜索、二叉树 | 中等 |
0103 | 二叉树的锯齿形层序遍历 | Python | 树、广度优先搜索、二叉树 | 中等 |
0104 | 二叉树的最大深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0101 | 对称二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0112 | 路径总和 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0113 | 路径总和 II | Python | 树、深度优先搜索、回溯、二叉树 | 中等 |
0236 | 二叉树的最近公共祖先 | Python | 树、深度优先搜索、二叉树 | 中等 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0226 | 翻转二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | 中等 |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0297 | 二叉树的序列化与反序列化 | Python | 树、深度优先搜索、广度优先搜索、设计、字符串、二叉树 | 困难 |
0114 | 二叉树展开为链表 | 栈、树、深度优先搜索、链表、二叉树 | 中等 |
二叉树的还原题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0105 | 从前序与中序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
0106 | 从中序与后序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
二叉搜索树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0098 | 验证二叉搜索树 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
0450 | 删除二叉搜索树中的节点 | Python | 树、二叉搜索树、二叉树 | 中等 |
剑指 Offer 54 | 二叉搜索树的第k大节点 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 简单 |
0230 | 二叉搜索树中第K小的元素 | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 | |
0426 | 将二叉搜索树转化为排序的双向链表 | Python | 栈、树、深度优先搜索、二叉搜索树、链表、二叉树、双向链表 | 中等 |
0110 | 平衡二叉树 | Python | 树、深度优先搜索、二叉树 | 简单 |
并查集题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0128 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
08. 图论
图的深度优先搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0200 | 岛屿数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0695 | 岛屿的最大面积 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0144 | 二叉树的前序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0094 | 二叉树的中序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0145 | 二叉树的后序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0129 | 求根节点到叶节点数字之和 | Python | 树、深度优先搜索、二叉树 | 中等 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0543 | 二叉树的直径 | Python | 树、深度优先搜索、二叉树 | 简单 |
0662 | 二叉树最大宽度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | 中等 |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
图的广度优先搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0200 | 岛屿数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | 中等 |
0322 | 零钱兑换 | Python | 广度优先搜索、数组、动态规划 | 中等 |
0207 | 课程表 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0662 | 二叉树最大宽度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | 中等 |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0111 | 二叉树的最小深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
剑指 Offer 32 - III | 从上到下打印二叉树 III | Python | 树、广度优先搜索、二叉树 | 中等 |
图的拓扑排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0210 | 课程表 II | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
09. 基础算法
枚举算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0001 | 两数之和 | Python | 数组、哈希表 | 简单 |
0078 | 子集 | Python | 位运算、数组、回溯 | 中等 |
0221 | 最大正方形 | Python | 数组、动态规划、矩阵 | 中等 |
0560 | 和为 K 的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
递归算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0024 | 两两交换链表中的节点 | Python | 递归、链表 | 中等 |
0206 | 反转链表 | Python | 递归、链表 | 简单 |
0092 | 反转链表 II | Python | 链表 | 中等 |
0021 | 合并两个有序链表 | Python | 递归、链表 | 简单 |
0509 | 斐波那契数 | Python | 递归、记忆化搜索、数学、动态规划 | 简单 |
0070 | 爬楼梯 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0104 | 二叉树的最大深度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0226 | 翻转二叉树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 简单 |
剑指 Offer 62 | 圆圈中最后剩下的数字 | Python | 递归、数学 | 简单 |
分治算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0004 | 寻找两个正序数组的中位数 | Python | 数组、二分查找、分治 | 困难 |
0023 | 合并 K 个升序链表 | Python | 链表、分治、堆(优先队列)、归并排序 | 困难 |
0053 | 最大子数组和 | Python | 数组、分治、动态规划 | 中等 |
0169 | 多数元素 | Python | 数组、哈希表、分治、计数、排序 | 简单 |
0014 | 最长公共前缀 | Python | 字典树、字符串 | 简单 |
剑指 Offer 33 | 二叉搜索树的后序遍历序列 | Python | 栈、树、二叉搜索树、递归、二叉树、单调栈 | 中等 |
回溯算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0046 | 全排列 | Python | 数组、回溯 | 中等 |
0047 | 全排列 II | Python | 数组、回溯 | 中等 |
0037 | 解数独 | Python | 数组、哈希表、回溯、矩阵 | 困难 |
0022 | 括号生成 | Python | 字符串、动态规划、回溯 | 中等 |
0078 | 子集 | Python | 位运算、数组、回溯 | 中等 |
0039 | 组合总和 | Python | 数组、回溯 | 中等 |
0040 | 组合总和 II | Python | 数组、回溯 | 中等 |
0093 | 复原 IP 地址 | Python | 字符串、回溯 | 中等 |
0079 | 单词搜索 | Python | 数组、回溯、矩阵 | 中等 |
0679 | 24 点游戏 | 数组、数学、回溯 | 困难 |
贪心算法题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0053 | 最大子数组和 | Python | 数组、分治、动态规划 | 中等 |
0056 | 合并区间 | Python | 数组、排序 | 中等 |
0122 | 买卖股票的最佳时机 II | Python | 贪心、数组 | 中等 |
0055 | 跳跃游戏 | Python | 贪心、数组、动态规划 | 中等 |
0402 | 移掉 K 位数字 | 栈、贪心、字符串、单调栈 | 中等 | |
0135 | 分发糖果 | Python | 贪心、数组 | 困难 |
0134 | 加油站 | Python | 贪心、数组 | 中等 |
0670 | 最大交换 | 贪心、数学 | 中等 |
位运算题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0136 | 只出现一次的数字 | Python | 位运算、数组 | 简单 |
0191 | 位1的个数 | Python | 位运算、分治 | 简单 |
0268 | 丢失的数字 | Python | 位运算、数组、哈希表、数学、二分查找、排序 | 简单 |
10. 动态规划
动态规划题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0070 | 爬楼梯 | Python | 记忆化搜索、数学、动态规划 | 简单 |
0509 | 斐波那契数 | Python | 递归、记忆化搜索、数学、动态规划 | 简单 |
0121 | 买卖股票的最佳时机 | Python | 数组、动态规划 | 简单 |
0322 | 零钱兑换 | Python | 广度优先搜索、数组、动态规划 | 中等 |
0518 | 零钱兑换 II | Python | 数组、动态规划 | 中等 |
0300 | 最长递增子序列 | Python | 数组、二分查找、动态规划 | 中等 |
1143 | 最长公共子序列 | Python | 字符串、动态规划 | 中等 |
0718 | 最长重复子数组 | Python | 数组、二分查找、动态规划、滑动窗口、哈希函数、滚动哈希 | 中等 |
0064 | 最小路径和 | Python | 数组、动态规划、矩阵 | 中等 |
0072 | 编辑距离 | Python | 字符串、动态规划 | 困难 |
0032 | 最长有效括号 | Python | 栈、字符串、动态规划 | 困难 |
0221 | 最大正方形 | Python | 数组、动态规划、矩阵 | 中等 |
0062 | 不同路径 | Python | 数学、动态规划、组合数学 | 中等 |
0063 | 不同路径 II | Python | 数组、动态规划、矩阵 | 中等 |
0152 | 乘积最大子数组 | Python | 数组、动态规划 | 中等 |
0198 | 打家劫舍 | Python | 数组、动态规划 | 中等 |
0213 | 打家劫舍 II | Python | 数组、动态规划 | 中等 |
0091 | 解码方法 | Python | 字符串、动态规划 | 中等 |
0010 | 正则表达式匹配 | Python | 递归、字符串、动态规划 | 困难 |
0678 | 有效的括号字符串 | Python | 栈、贪心、字符串、动态规划 | 中等 |
0045 | 跳跃游戏 II | Python | 贪心、数组、动态规划 | 中等 |
0673 | 最长递增子序列的个数 | Python | 树状数组、线段树、数组、动态规划 | 中等 |
0139 | 单词拆分 | Python | 字典树、记忆化搜索、数组、哈希表、字符串、动态规划 | 中等 |
0044 | 通配符匹配 | Python | 贪心、递归、字符串、动态规划 | 困难 |
0120 | 三角形最小路径和 | Python | 数组、动态规划 | 中等 |
0096 | 不同的二叉搜索树 | Python | 树、二叉搜索树、数学、动态规划、二叉树 | 中等 |
0887 | 鸡蛋掉落 | Python | 数学、二分查找、动态规划 | 困难 |
0097 | 交错字符串 | 字符串、动态规划 | 中等 | |
0516 | 最长回文子序列 | Python | 字符串、动态规划 | 中等 |
记忆化搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0329 | 矩阵中的最长递增路径 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序、记忆化搜索、数组、动态规划、矩阵 | 困难 |
11. 补充题目
设计数据结构题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0146 | LRU 缓存 | 设计、哈希表、链表、双向链表 | 中等 | |
0460 | LFU 缓存 | 设计、哈希表、链表、双向链表 | 困难 |
数学题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0007 | 整数反转 | Python | 数学 | 中等 |
0009 | 回文数 | Python | 数学 | 简单 |
剑指 Offer 62 | 圆圈中最后剩下的数字 | Python | 递归、数学 | 简单 |
0168 | Excel表列名称 | Python | 数学、字符串 | 简单 |
0400 | 第 N 位数字 | Python | 数学、二分查找 | 中等 |
模拟题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0008 | 字符串转换整数 (atoi) | Python | 字符串 | 中等 |
0165 | 比较版本号 | 双指针、字符串 | 中等 | |
0468 | 验证IP地址 | Python | 字符串 | 中等 |
0086 | 分隔链表 | 链表、双指针 | 中等 |
前缀和
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0560 | 和为 K 的子数组 | Python | 数组、哈希表、前缀和 | 中等 |
思维锻炼题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0031 | 下一个排列 | 数组、双指针 | 中等 | |
0556 | 下一个更大元素 III | 数学、双指针、字符串 | 中等 | |
0470 | 用 Rand7() 实现 Rand10() | 数学、拒绝采样、概率与统计、随机化 | 中等 |
参考资料
- 【清单】CodeTop 企业题库