- juxq's blog
《算法通关手册》算法分类题单(原始)3
- 2024-4-8 9:19:40 @
#07. 树
#二叉树的遍历题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0144 | 二叉树的前序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0094 | 二叉树的中序遍历 | Python | ||
0145 | 二叉树的后序遍历 | Python | ||
0102 | 二叉树的层序遍历 | Python | 树、广度优先搜索、二叉树 | 中等 |
0103 | 二叉树的锯齿形层序遍历 | Python | ||
0107 | 二叉树的层序遍历 II | 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 | 树、深度优先搜索、广度优先搜索、二叉树 | |
0116 | 填充每个节点的下一个右侧节点指针 | Python | 树、深度优先搜索、广度优先搜索、链表、二叉树 | 中等 |
0117 | 填充每个节点的下一个右侧节点指针 II | Python | ||
0297 | 二叉树的序列化与反序列化 | Python | 树、深度优先搜索、广度优先搜索、设计、字符串、二叉树 | 困难 |
0114 | 二叉树展开为链表 | 栈、树、深度优先搜索、链表、二叉树 | 中等 |
#二叉树的还原题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0105 | 从前序与中序遍历序列构造二叉树 | Python | 树、数组、哈希表、分治、二叉树 | 中等 |
0106 | 从中序与后序遍历序列构造二叉树 | Python | ||
0889 | 根据前序和后序遍历构造二叉树 | Python |
#二叉搜索树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0098 | 验证二叉搜索树 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | 中等 |
0173 | 二叉搜索树迭代器 | Python | 栈、树、设计、二叉搜索树、二叉树、迭代器 | |
0700 | 二叉搜索树中的搜索 | Python | 树、二叉搜索树、二叉树 | 简单 |
0701 | 二叉搜索树中的插入操作 | Python | 中等 | |
0450 | 删除二叉搜索树中的节点 | Python | ||
0703 | 数据流中的第 K 大元素 | Python | 树、设计、二叉搜索树、二叉树、数据流、堆(优先队列) | 简单 |
剑指 Offer 54 | 二叉搜索树的第k大节点 | Python | 树、深度优先搜索、二叉搜索树、二叉树 | |
0230 | 二叉搜索树中第K小的元素 | 中等 | ||
0235 | 二叉搜索树的最近公共祖先 | Python | ||
0426 | 将二叉搜索树转化为排序的双向链表 | Python | 栈、树、深度优先搜索、二叉搜索树、链表、二叉树、双向链表 | |
0108 | 将有序数组转换为二叉搜索树 | Python | 树、二叉搜索树、数组、分治、二叉树 | 简单 |
0110 | 平衡二叉树 | Python | 树、深度优先搜索、二叉树 |
#线段树题目
#单点更新题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0303 | 区域和检索 - 数组不可变 | Python | 设计、数组、前缀和 | 简单 |
0307 | 区域和检索 - 数组可修改 | Python | 设计、树状数组、线段树、数组 | 中等 |
0354 | 俄罗斯套娃信封问题 | Python | 数组、二分查找、动态规划、排序 | 困难 |
#区间更新题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0370 | 区间加法 | Python | 数组、前缀和 | 中等 |
1109 | 航班预订统计 | Python | ||
1450 | 在既定时间做作业的学生人数 | Python | 数组 | 简单 |
0673 | 最长递增子序列的个数 | Python | 树状数组、线段树、数组、动态规划 | 中等 |
1310 | 子数组异或查询 | Python | 位运算、数组、前缀和 | |
1851 | 包含每个查询的最小区间 | 数组、二分查找、排序、扫描线、堆(优先队列) | 困难 |
#区间合并题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0729 | 我的日程安排表 I | Python | 设计、线段树、二分查找、有序集合 | 中等 |
0731 | 我的日程安排表 II | Python | ||
0732 | 我的日程安排表 III | Python | 困难 |
#扫描线问题
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0218 | 天际线问题 | Python | 树状数组、线段树、数组、分治、有序集合、扫描线、堆(优先队列) | 困难 |
0391 | 完美矩形 | Python | 数组、扫描线 | |
0850 | 矩形面积 II | Python | 线段树、数组、有序集合、扫描线 |
#树状数组题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0303 | 区域和检索 - 数组不可变 | Python | 设计、数组、前缀和 | 简单 |
0307 | 区域和检索 - 数组可修改 | Python | 设计、树状数组、线段树、数组 | 中等 |
0315 | 计算右侧小于当前元素的个数 | Python | 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 | 困难 |
1450 | 在既定时间做作业的学生人数 | Python | 数组 | 简单 |
0354 | 俄罗斯套娃信封问题 | Python | 数组、二分查找、动态规划、排序 | 困难 |
0673 | 最长递增子序列的个数 | Python | 树状数组、线段树、数组、动态规划 | 中等 |
1310 | 子数组异或查询 | Python | 位运算、数组、前缀和 | |
1893 | 检查是否区域内所有整数都被覆盖 | Python | 数组、哈希表、前缀和 | 简单 |
#并查集题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0990 | 等式方程的可满足性 | Python | 并查集、图、数组、字符串 | 中等 |
0547 | 省份数量 | Python | 深度优先搜索、广度优先搜索、并查集、图 | |
0684 | 冗余连接 | Python | ||
1319 | 连通网络的操作次数 | Python | ||
0765 | 情侣牵手 | Python | 贪心、深度优先搜索、广度优先搜索、并查集、图 | 困难 |
0399 | 除法求值 | Python | 深度优先搜索、广度优先搜索、并查集、图、数组、最短路 | 中等 |
0959 | 由斜杠划分区域 | Python | 深度优先搜索、广度优先搜索、并查集、图 | |
1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | |
0778 | 水位上升的泳池中游泳 | Python | 困难 | |
1202 | 交换字符串中的元素 | Python | 深度优先搜索、广度优先搜索、并查集、哈希表、字符串 | 中等 |
0947 | 移除最多的同行或同列石头 | Python | 深度优先搜索、并查集、图 | |
0803 | 打砖块 | Python | 并查集、数组、矩阵 | 困难 |
0128 | 最长连续序列 | Python | 并查集、数组、哈希表 | 中等 |
#08. 图论
#图的深度优先搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0797 | 所有可能的路径 | Python | 深度优先搜索、广度优先搜索、图、回溯 | 中等 |
0200 | 岛屿数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | |
0695 | 岛屿的最大面积 | Python | ||
0133 | 克隆图 | Python | 深度优先搜索、广度优先搜索、图、哈希表 | |
0494 | 目标和 | Python | 数组、动态规划、回溯 | |
0144 | 二叉树的前序遍历 | Python | 栈、树、深度优先搜索、二叉树 | 简单 |
0094 | 二叉树的中序遍历 | Python | ||
0145 | 二叉树的后序遍历 | Python | ||
0589 | N 叉树的前序遍历 | Python | 栈、树、深度优先搜索 | |
0590 | N 叉树的后序遍历 | Python | ||
0124 | 二叉树中的最大路径和 | Python | 树、深度优先搜索、动态规划、二叉树 | 困难 |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0543 | 二叉树的直径 | Python | 树、深度优先搜索、二叉树 | 简单 |
0662 | 二叉树最大宽度 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | 中等 |
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | |
0111 | 二叉树的最小深度 | Python | ||
0841 | 钥匙和房间 | Python | 深度优先搜索、广度优先搜索、图 | 中等 |
0129 | 求根节点到叶节点数字之和 | Python | 树、深度优先搜索、二叉树 | |
0323 | 无向图中连通分量的数目 | Python | 深度优先搜索、广度优先搜索、并查集、图 | |
0684 | 冗余连接 | Python | ||
0802 | 找到最终的安全状态 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | |
0785 | 判断二分图 | Python | 深度优先搜索、广度优先搜索、并查集、图 | |
0886 | 可能的二分法 | Python | ||
0323 | 无向图中连通分量的数目 | Python | ||
0130 | 被围绕的区域 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | |
0417 | 太平洋大西洋水流问题 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | |
1020 | 飞地的数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | |
1254 | 统计封闭岛屿的数目 | Python | ||
1034 | 边界着色 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | |
剑指 Offer 13 | 机器人的运动范围 | Python | 深度优先搜索、广度优先搜索、动态规划 | |
0529 | 扫雷游戏 | 深度优先搜索、广度优先搜索、数组、矩阵 |
#图的广度优先搜索题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0797 | 所有可能的路径 | Python | 深度优先搜索、广度优先搜索、图、回溯 | 中等 |
0286 | 墙与门 | Python | 广度优先搜索、数组、矩阵 | |
0200 | 岛屿数量 | Python | 深度优先搜索、广度优先搜索、并查集、数组、矩阵 | |
0752 | 打开转盘锁 | Python | 广度优先搜索、数组、哈希表、字符串 | |
0279 | 完全平方数 | Python | 广度优先搜索、数学、动态规划 | |
0133 | 克隆图 | Python | 深度优先搜索、广度优先搜索、图、哈希表 | |
0733 | 图像渲染 | Python | 深度优先搜索、广度优先搜索、数组、矩阵 | 简单 |
0542 | 01 矩阵 | Python | 广度优先搜索、数组、动态规划、矩阵 | 中等 |
0322 | 零钱兑换 | Python | 广度优先搜索、数组、动态规划 | |
0323 | 无向图中连通分量的数目 | Python | 深度优先搜索、广度优先搜索、并查集、图 | |
剑指 Offer 13 | 机器人的运动范围 | Python | 深度优先搜索、广度优先搜索、动态规划 | |
0199 | 二叉树的右视图 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | |
0662 | 二叉树最大宽度 | Python | ||
0958 | 二叉树的完全性检验 | Python | 树、广度优先搜索、二叉树 | |
0572 | 另一棵树的子树 | 树、深度优先搜索、二叉树、字符串匹配、哈希函数 | 简单 | |
0100 | 相同的树 | Python | 树、深度优先搜索、广度优先搜索、二叉树 | |
0111 | 二叉树的最小深度 | Python | ||
剑指 Offer 32 - III | 从上到下打印二叉树 III | Python | 树、广度优先搜索、二叉树 | 中等 |
#图的拓扑排序题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0207 | 课程表 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0210 | 课程表 II | Python | ||
1136 | 并行课程 | Python | 图、拓扑排序 | |
2050 | 并行课程 III | Python | 图、拓扑排序、数组、动态规划 | 困难 |
0802 | 找到最终的安全状态 | Python | 深度优先搜索、广度优先搜索、图、拓扑排序 | 中等 |
0851 | 喧闹和富有 | Python | 深度优先搜索、图、拓扑排序、数组 |
#图的最小生成树题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
1584 | 连接所有点的最小费用 | 并查集、图、数组、最小生成树 | 中等 | |
1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | |
0778 | 水位上升的泳池中游泳 | Python | 困难 |
#单源最短路径题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0407 | 接雨水 II | 广度优先搜索、数组、矩阵、堆(优先队列) | 困难 | |
0743 | 网络延迟时间 | 深度优先搜索、广度优先搜索、图、最短路、堆(优先队列) | 中等 | |
0787 | K 站中转内最便宜的航班 | 深度优先搜索、广度优先搜索、图、动态规划、最短路、堆(优先队列) | ||
1631 | 最小体力消耗路径 | Python | 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列) | |
1786 | 从第一个节点出发到最后一个节点的受限路径数 | 图、拓扑排序、动态规划、最短路、堆(优先队列) |
#多源最短路径题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0815 | 公交路线 | 广度优先搜索、数组、哈希表 | 困难 | |
1162 | 地图分析 | 广度优先搜索、数组、动态规划、矩阵 | 中等 |
#次短路径题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
2045 | 到达目的地的第二短时间 | 广度优先搜索、图、最短路 | 困难 |
#差分约束系统
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0995 | K 连续位的最小翻转次数 | Python | 位运算、队列、数组、前缀和、滑动窗口 | 困难 |
1109 | 航班预订统计 | Python | 数组、前缀和 | 中等 |
#二分图基础题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
0785 | 判断二分图 | Python | 深度优先搜索、广度优先搜索、并查集、图 | 中等 |
#二分图最大匹配题目
题号 | 标题 | 题解 | 标签 | 难度 |
---|---|---|---|---|
LCP 04 | 覆盖 | 位运算、图、数组、动态规划、状态压缩 | 困难 | |
1947 | 最大兼容性评分和 | Python | 位运算、数组、动态规划、回溯、状态压缩 | 中等 |
1595 | 连通两组点的最小成本 | Python | 位运算、数组、动态规划、状态压缩、矩阵 | 困难 |