Skip to content

Latest commit

 

History

History
174 lines (165 loc) · 42.6 KB

design.md

File metadata and controls

174 lines (165 loc) · 42.6 KB

设计

全部标签

数据结构

数组 矩阵 链表 双向链表 单调栈 队列 单调队列 堆(优先队列) 哈希表 字符串 字符串匹配 二叉树 二叉搜索树 最小生成树 有序集合 拓扑排序 最短路 强连通分量 欧拉回路 双连通分量 并查集 字典树 线段树 树状数组 后缀数组

算法

枚举 递归 分治 回溯 贪心 动态规划 排序 桶排序 计数排序 基数排序 归并排序 快速选择 二分查找 记忆化搜索 深度优先搜索 广度优先搜索 双指针 位运算 前缀和 计数 滑动窗口 状态压缩 哈希函数 滚动哈希 扫描线

其他

数学 数论 几何 博弈 模拟 组合数学 随机化 概率与统计 水塘抽样 拒绝采样 数据库 设计 数据流 脑筋急转弯 交互 迭代器 多线程


题号 标题 题解 标签 难度 力扣
146 LRU 缓存 [✓] 设计 哈希表 链表 1+ 🟠 🀄️ 🔗
155 最小栈 [✓] 设计 🟠 🀄️ 🔗
170 两数之和 III - 数据结构设计 🔒 [✓] 设计 数组 哈希表 2+ 🟢 🀄️ 🔗
173 二叉搜索树迭代器 [✓] 设计 3+ 🟠 🀄️ 🔗
208 实现 Trie (前缀树) [✓] 设计 字典树 哈希表 1+ 🟠 🀄️ 🔗
211 添加与搜索单词 - 数据结构设计 [✓] 深度优先搜索 设计 字典树 1+ 🟠 🀄️ 🔗
225 用队列实现栈 [✓] 设计 队列 🟢 🀄️ 🔗
232 用栈实现队列 [✓] 设计 队列 🟢 🀄️ 🔗
244 最短单词距离 II 🔒 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
251 展开二维向量 🔒 设计 数组 双指针 1+ 🟠 🀄️ 🔗
271 字符串的编码与解码 🔒 设计 数组 字符串 🟠 🀄️ 🔗
281 锯齿迭代器 🔒 设计 队列 数组 1+ 🟠 🀄️ 🔗
284 窥视迭代器 [✓] 设计 数组 迭代器 🟠 🀄️ 🔗
288 单词的唯一缩写 🔒 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
295 数据流的中位数 [✓] 设计 双指针 数据流 2+ 🔴 🀄️ 🔗
297 二叉树的序列化与反序列化 [✓] 深度优先搜索 广度优先搜索 3+ 🔴 🀄️ 🔗
303 区域和检索 - 数组不可变 [✓] 设计 数组 前缀和 🟢 🀄️ 🔗
304 二维区域和检索 - 矩阵不可变 [✓] 设计 数组 矩阵 1+ 🟠 🀄️ 🔗
307 区域和检索 - 数组可修改 [✓] 设计 树状数组 线段树 1+ 🟠 🀄️ 🔗
308 二维区域和检索 - 矩阵可修改 🔒 设计 树状数组 线段树 2+ 🔴 🀄️ 🔗
341 扁平化嵌套列表迭代器 [✓] 深度优先搜索 3+ 🟠 🀄️ 🔗
346 数据流中的移动平均值 🔒 [✓] 设计 队列 数组 1+ 🟢 🀄️ 🔗
348 设计井字棋 🔒 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
352 将数据流变为多个不相交区间 设计 二分查找 有序集合 🔴 🀄️ 🔗
353 贪吃蛇 🔒 设计 队列 数组 2+ 🟠 🀄️ 🔗
355 设计推特 [✓] 设计 哈希表 链表 1+ 🟠 🀄️ 🔗
359 日志速率限制器 🔒 设计 哈希表 数据流 🟢 🀄️ 🔗
362 敲击计数器 🔒 设计 队列 数组 2+ 🟠 🀄️ 🔗
379 电话目录管理系统 🔒 [✓] 设计 队列 数组 2+ 🟠 🀄️ 🔗
380 O(1) 时间插入、删除和获取随机元素 [✓] 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
381 O(1) 时间插入、删除和获取随机元素 - 允许重复 设计 数组 哈希表 2+ 🔴 🀄️ 🔗
431 将 N 叉树编码为二叉树 🔒 深度优先搜索 广度优先搜索 2+ 🔴 🀄️ 🔗
432 全 O(1) 的数据结构 [✓] 设计 哈希表 链表 1+ 🔴 🀄️ 🔗
449 序列化和反序列化二叉搜索树 深度优先搜索 广度优先搜索 4+ 🟠 🀄️ 🔗
460 LFU 缓存 [✓] 设计 哈希表 链表 1+ 🔴 🀄️ 🔗
535 TinyURL 的加密与解密 设计 哈希表 字符串 1+ 🟠 🀄️ 🔗
588 设计内存文件系统 🔒 设计 字典树 哈希表 2+ 🔴 🀄️ 🔗
604 迭代压缩字符串 🔒 设计 数组 字符串 1+ 🟢 🀄️ 🔗
622 设计循环队列 [✓] 设计 队列 数组 1+ 🟠 🀄️ 🔗
631 设计 Excel 求和公式 🔒 设计 拓扑排序 2+ 🔴 🀄️ 🔗
635 设计日志存储系统 🔒 设计 哈希表 字符串 1+ 🟠 🀄️ 🔗
641 设计循环双端队列 [✓] 设计 队列 数组 1+ 🟠 🀄️ 🔗
642 设计搜索自动补全系统 🔒 深度优先搜索 设计 字典树 4+ 🔴 🀄️ 🔗
676 实现一个魔法字典 深度优先搜索 设计 字典树 2+ 🟠 🀄️ 🔗
677 键值映射 设计 字典树 哈希表 1+ 🟠 🀄️ 🔗
703 数据流中的第 K 大元素 [✓] 设计 二叉搜索树 3+ 🟢 🀄️ 🔗
705 设计哈希集合 [✓] 设计 数组 哈希表 2+ 🟢 🀄️ 🔗
706 设计哈希映射 [✓] 设计 数组 哈希表 2+ 🟢 🀄️ 🔗
707 设计链表 [✓] 设计 链表 🟠 🀄️ 🔗
715 Range 模块 设计 线段树 有序集合 🔴 🀄️ 🔗
716 最大栈 🔒 设计 链表 2+ 🔴 🀄️ 🔗
729 我的日程安排表 I [✓] 设计 线段树 数组 2+ 🟠 🀄️ 🔗
731 我的日程安排表 II [✓] 设计 线段树 数组 3+ 🟠 🀄️ 🔗
732 我的日程安排表 III 设计 线段树 二分查找 2+ 🔴 🀄️ 🔗
745 前缀和后缀搜索 设计 字典树 数组 2+ 🔴 🀄️ 🔗
855 考场就座 设计 有序集合 堆(优先队列) 🟠 🀄️ 🔗
895 最大频率栈 设计 哈希表 1+ 🔴 🀄️ 🔗
900 RLE 迭代器 设计 数组 计数 1+ 🟠 🀄️ 🔗
901 股票价格跨度 [✓] 设计 数据流 1+ 🟠 🀄️ 🔗
911 在线选举 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
919 完全二叉树插入器 广度优先搜索 设计 1+ 🟠 🀄️ 🔗
933 最近的请求次数 [✓] 设计 队列 数据流 🟢 🀄️ 🔗
981 基于时间的键值存储 [✓] 设计 哈希表 字符串 1+ 🟠 🀄️ 🔗
1032 字符流 设计 字典树 数组 2+ 🔴 🀄️ 🔗
1146 快照数组 [✓] 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
1157 子数组中占绝大多数的元素 设计 树状数组 线段树 2+ 🔴 🀄️ 🔗
1166 设计文件系统 🔒 设计 字典树 哈希表 1+ 🟠 🀄️ 🔗
1172 餐盘栈 设计 哈希表 1+ 🔴 🀄️ 🔗
1206 设计跳表 设计 链表 🔴 🀄️ 🔗
1244 力扣排行榜 🔒 设计 哈希表 排序 🟠 🀄️ 🔗
1261 在受污染的二叉树中查找元素 深度优先搜索 广度优先搜索 3+ 🟠 🀄️ 🔗
1286 字母组合迭代器 设计 字符串 回溯 1+ 🟠 🀄️ 🔗
1348 推文计数 设计 哈希表 二分查找 2+ 🟠 🀄️ 🔗
1352 最后 K 个数的乘积 设计 队列 数组 2+ 🟠 🀄️ 🔗
1357 每隔 n 个顾客打折 设计 数组 哈希表 🟠 🀄️ 🔗
1381 设计一个支持增量操作的栈 [✓] 设计 数组 🟠 🀄️ 🔗
1396 设计地铁系统 设计 哈希表 字符串 🟠 🀄️ 🔗
1429 第一个唯一数字 🔒 设计 队列 数组 2+ 🟠 🀄️ 🔗
1472 设计浏览器历史记录 [✓] 设计 数组 3+ 🟠 🀄️ 🔗
1476 子矩形查询 设计 数组 矩阵 🟠 🀄️ 🔗
1483 树节点的第 K 个祖先 深度优先搜索 广度优先搜索 3+ 🔴 🀄️ 🔗
1500 设计文件分享系统 🔒 设计 哈希表 数据流 2+ 🟠 🀄️ 🔗
1570 两个稀疏向量的点积 🔒 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
1586 二叉搜索树迭代器 II 🔒 设计 3+ 🟠 🀄️ 🔗
1600 王位继承顺序 深度优先搜索 设计 1+ 🟠 🀄️ 🔗
1603 设计停车系统 [✓] 设计 计数 模拟 🟢 🀄️ 🔗
1622 奇妙序列 设计 线段树 数学 🔴 🀄️ 🔗
1628 设计带解析函数的表达式树 🔒 设计 3+ 🟠 🀄️ 🔗
1656 设计有序流 [✓] 设计 数组 哈希表 1+ 🟢 🀄️ 🔗
1670 设计前中后队列 设计 队列 数组 2+ 🟠 🀄️ 🔗
1756 设计最近使用(MRU)队列 🔒 设计 树状数组 3+ 🟠 🀄️ 🔗
1797 设计一个验证系统 设计 哈希表 链表 1+ 🟠 🀄️ 🔗
1804 实现 Trie (前缀树) II 🔒 设计 字典树 哈希表 1+ 🟠 🀄️ 🔗
1825 求出 MK 平均值 设计 队列 数据流 2+ 🔴 🀄️ 🔗
1845 座位预约管理系统 设计 堆(优先队列) 🟠 🀄️ 🔗
1865 找出和为指定值的下标对 设计 数组 哈希表 🟠 🀄️ 🔗
1912 设计电影租借系统 设计 数组 哈希表 2+ 🔴 🀄️ 🔗
1993 树上的操作 深度优先搜索 广度优先搜索 3+ 🟠 🀄️ 🔗
2013 检测正方形 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
2034 股票价格波动 设计 哈希表 数据流 2+ 🟠 🀄️ 🔗
2043 简易银行系统 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
2069 模拟行走机器人 II 设计 模拟 🟠 🀄️ 🔗
2080 区间内查询数字的频率 设计 线段树 数组 2+ 🟠 🀄️ 🔗
2102 序列顺序查询 设计 数据流 有序集合 1+ 🔴 🀄️ 🔗
2166 设计位集 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
2227 加密解密字符串 设计 字典树 数组 2+ 🔴 🀄️ 🔗
2241 设计一个 ATM 机器 贪心 设计 数组 🟠 🀄️ 🔗
2254 设计视频共享平台 🔒 设计 哈希表 1+ 🔴 🀄️ 🔗
2276 统计区间中的整数数目 设计 线段树 有序集合 🔴 🀄️ 🔗
2286 以组为单位订音乐会的门票 设计 树状数组 线段树 1+ 🔴 🀄️ 🔗
2296 设计一个文本编辑器 设计 链表 3+ 🔴 🀄️ 🔗
2336 无限集中的最小数字 [✓] 设计 哈希表 有序集合 1+ 🟠 🀄️ 🔗
2349 设计数字容器系统 设计 哈希表 有序集合 1+ 🟠 🀄️ 🔗
2353 设计食物评分系统 设计 哈希表 有序集合 1+ 🟠 🀄️ 🔗
2408 设计 SQL 🔒 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
2424 最长上传前缀 并查集 设计 树状数组 4+ 🟠 🀄️ 🔗
2502 设计内存分配器 设计 数组 哈希表 1+ 🟠 🀄️ 🔗
2526 找到数据流中的连续整数 设计 队列 哈希表 2+ 🟠 🀄️ 🔗
2590 设计一个待办事项清单 🔒 设计 数组 哈希表 2+ 🟠 🀄️ 🔗
2642 设计可以求最短路径的图类 设计 最短路 1+ 🔴 🀄️ 🔗
2671 频率跟踪器 设计 哈希表 🟠 🀄️ 🔗
3242 设计相邻元素求和服务 设计 数组 哈希表 2+ 🟢 🀄️ 🔗
LCP 27 黑盒光线反射 设计 线段树 数学 1+ 🔴 🀄️
剑指 Offer 30 包含min函数的栈 [✓] 设计 🟢 🀄️
剑指 Offer 37 序列化二叉树 [✓] 深度优先搜索 广度优先搜索 3+ 🔴 🀄️
剑指 Offer 41 数据流中的中位数 [✓] 设计 双指针 数据流 2+ 🔴 🀄️
剑指 Offer 59-II 队列的最大值 [✓] 设计 队列 单调队列 🟠 🀄️
剑指 Offer 9 用两个栈实现队列 [✓] 设计 队列 🟢 🀄️
剑指 Offer II 13 二维子矩阵的和 设计 数组 矩阵 1+ 🟠 🀄️
剑指 Offer II 30 插入、删除和随机访问都是 O(1) 的容器 [✓] 设计 数组 哈希表 2+ 🟠 🀄️
剑指 Offer II 31 最近最少使用缓存 [✓] 设计 哈希表 链表 1+ 🟠 🀄️
剑指 Offer II 41 滑动窗口的平均值 [✓] 设计 队列 数组 1+ 🟢 🀄️
剑指 Offer II 42 最近请求次数 设计 队列 数据流 🟢 🀄️
剑指 Offer II 43 往完全二叉树添加节点 广度优先搜索 设计 1+ 🟠 🀄️
剑指 Offer II 48 序列化与反序列化二叉树 [✓] 深度优先搜索 广度优先搜索 3+ 🔴 🀄️
剑指 Offer II 55 二叉搜索树迭代器 [✓] 设计 3+ 🟠 🀄️
剑指 Offer II 58 日程表 [✓] 设计 线段树 二分查找 1+ 🟠 🀄️
剑指 Offer II 59 数据流的第 K 大数值 [✓] 设计 二叉搜索树 3+ 🟢 🀄️
剑指 Offer II 62 实现前缀树 [✓] 设计 字典树 哈希表 1+ 🟠 🀄️
剑指 Offer II 64 神奇的字典 深度优先搜索 设计 字典树 2+ 🟠 🀄️
剑指 Offer II 66 单词之和 设计 字典树 哈希表 1+ 🟠 🀄️
面试题 03.01 三合一 设计 数组 🟢 🀄️
面试题 03.02 栈的最小值 设计 🟢 🀄️
面试题 03.03 堆盘子 设计 链表 🟠 🀄️
面试题 03.04 化栈为队 设计 队列 🟢 🀄️
面试题 03.05 栈排序 设计 单调栈 🟠 🀄️
面试题 03.06 动物收容所 设计 队列 🟢 🀄️
面试题 10.10 数字流的秩 设计 树状数组 二分查找 1+ 🟠 🀄️
面试题 16.02 单词频率 设计 字典树 数组 2+ 🟠 🀄️
面试题 16.09 运算 设计 数学 🟠 🀄️
面试题 16.25 LRU 缓存 [✓] 设计 哈希表 链表 1+ 🟠 🀄️
面试题 17.20 连续中值 设计 双指针 数据流 2+ 🔴 🀄️