01 链表
| 题号 | 题目 | 难度 |
|---|---|---|
| BM1 | 反转链表 | 简单 |
| BM2 | 链表内指定区间反转 | 中等 |
| BM3 | 链表中的节点每k个一组翻转 | 中等 |
| BM4 | 合并两个排序的链表 | 简单 |
| BM5 | 合并k个已排序的链表 | 困难 |
| BM6 | 判断链表中是否有环 | 简单 |
| BM7 | 链表中环的入口节点 | 简单 |
| BM8 | 链表中倒数最后k个结点 | 简单 |
| BM9 | 删除链表的倒数第n个节点 | 中等 |
| BM10 | 两个链表的第一个公共结点 | 简单 |
| BM11 | 链表相加(二) | 中等 |
| BM12 | 单链表的排序 | 简单 |
| BM13 | 判断一个链表是否为回文结构 | 简单 |
| BM14 | 链表的奇偶重排 | 中等 |
| BM15 | 删除有序链表中重复的元素-I | 简单 |
| BM16 | 删除有序链表中重复的元素-II | 中等 |
02 二分查找/排序
| 题号 | 题目 | 难度 |
|---|---|---|
| BM17 | 二分查找-I | 简单 |
| BM18 | 二维数组中的查找 | 中等 |
| BM19 | 寻找峰值 | 中等 |
| BM20 | 数组中的逆序对 | 中等 |
| BM21 | 旋转数组的最小数字 | 简单 |
| BM22 | 比较版本号 | 中等 |
03 二叉树
| 题号 | 题目 | 难度 |
|---|---|---|
| BM23 | 二叉树的前序遍历 | 简单 |
| BM24 | 二叉树的中序遍历 | 中等 |
| BM25 | 二叉树的后序遍历 | 简单 |
| BM26 | 二叉树的层次遍历 | 中等 |
| BM27 | 按之字形顺序打印二叉树 | 中等 |
| BM28 | 二叉树的最大深度 | 简单 |
| BM29 | 二叉树中和为某一值的路径(一) | 简单 |
| BM30 | 二叉搜索树与双向链表 | 中等 |
| BM31 | 对称的二叉树 | 简单 |
| BM32 | 合并二叉树 | 简单 |
| BM33 | 二叉树的镜像 | 简单 |
| BM34 | 判断是不是二叉搜索树 | 中等 |
| BM35 | 判断是不是完全二叉树 | 中等 |
| BM36 | 判断是不是平衡二叉树 | 简单 |
| BM37 | 二叉搜索树的最近公共祖先 | 简单 |
| BM38 | 在二叉树中找到两个结点的最近公共祖先 | 中等 |
| BM39 | 序列化二叉树 | 困难 |
| BM40 | 重建二叉树 | 中等 |
| BM41 | 输出二叉树的右视图 | 中等 |
04 堆/栈/队列
| 题号 | 题目 | 难度 |
|---|---|---|
| BM42 | 用两个栈实现队列 | 简单 |
| BM43 | 包含min函数的栈 | 简单 |
| BM44 | 有效括号序列 | 简单 |
| BM45 | 滑动窗口的最大值 | 困难 |
| BM46 | 最小的K个数 | 中等 |
| BM47 | 寻找第K大 | 中等 |
| BM48 | 数据流中的中位数 | 中等 |
| BM49 | 表达式求值 | 中等 |
05 哈希
| 题号 | 题目 | 难度 |
|---|---|---|
| BM50 | 两数之和 | 简单 |
| BM51 | 数组中出现次数超过一半的数字 | 简单 |
| BM52 | 数组中只出现一次的两个数字 | 中等 |
| BM53 | 缺失的第一个正整数 | 中等 |
| BM54 | 三数之和 | 中等 |
06 递归/回溯
| 题号 | 题目 | 难度 |
|---|---|---|
| BM55 | 没有重复项数字的全排列 | 中等 |
| BM56 | 有重复项数字的全排列 | 中等 |
| BM57 | 🧱岛屿数量 | 中等 |
| BM58 | 字符串的排列 | 中等 |
| BM59 | N皇后问题 | 困难 |
| BM60 | 括号生成 | 中等 |
| BM61 | 矩阵最长递增路径 | 中等 |
07 动态规划
| 题号 | 题目 | 难度 |
|---|---|---|
| BM62 | 斐波那契数列 | 入门 |
| BM63 | 跳台阶 | 入门 |
| BM64 | 最小花费爬楼梯 | 简单 |
| BM65 | 最长公共子序列(二) | 中等 |
| BM66 | 最长公共子串 | 中等 |
| BM67 | 不同路径的数目(一) | 简单 |
| BM68 | 矩阵的最小路径和 | 中等 |
| BM69 | 把数字翻译成字符串 | 中等 |
| BM70 | 兑换零钱(一) | 简单 |
| BM71 | 最长上升子序列(一) | 中等 |
| BM72 | 连续子数组的最大和 | 简单 |
| BM73 | 最长回文子串 | 中等 |
| BM74 | 数字字符串转化成IP地址 | 中等 |
| BM75 | 编辑距离(一) | 困难 |
| BM76 | 正则表达式匹配 | 困难 |
| BM77 | 最长的括号子串 | 困难 |
| BM78 | 打家劫舍(一) | 中等 |
| BM79 | 打家劫舍(二) | 中等 |
| BM80 | 买卖股票的最好时机(一) | 简单 |
| BM81 | 买卖股票的最好时机(二) | 中等 |
| BM82 | 买卖股票的最好时机(三) | 困难 |
08 字符串
| 题号 | 题目 | 难度 |
|---|---|---|
| BM83 | 字符串变形 | 简单 |
| BM84 | 最长公共前缀 | 简单 |
| BM85 | 验证IP地址 | 中等 |
| BM86 | 大数加法 | 中等 |
09 双指针
| 题号 | 题目 | 难度 |
|---|---|---|
| BM87 | 合并两个有序的数组 | 简单 |
| BM88 | 判断是否为回文字符串 | 入门 |
| BM89 | 合并区间 | 中等 |
| BM90 | 最小覆盖子串 | 困难 |
| BM91 | 反转字符串 | 入门 |
| BM92 | 最长无重复子数组 | 中等 |
| BM93 | 盛水最多的容器 | 中等 |
| BM94 | 接雨水问题 | 困难 |
10 贪心
| 题号 | 题目 | 难度 |
|---|---|---|
| BM95 | 分糖果问题 | 中等 |
| BM96 | 主持人调度 | 中等 |
11 模拟
| 题号 | 题目 | 难度 |
|---|---|---|
| BM97 | 旋转数组 | 中等 |
| BM98 | 螺旋矩阵 | 简单 |
| BM99 | 顺时针旋转矩阵 | 中等 |
| BM100 | 设计LRU缓存结构 | 中等 |
| BM101 | 设计LFU缓存结构 | 困难 |
