设计
设计
全部标签
数据结构
数组
矩阵
链表
双向链表
栈
单调栈
队列
单调队列
堆(优先队列)
哈希表
字符串
字符串匹配
树
二叉树
二叉搜索树
最小生成树
图
有序集合
拓扑排序
最短路
强连通分量
欧拉回路
双连通分量
并查集
字典树
线段树
树状数组
后缀数组
算法
枚举
递归
分治
回溯
贪心
动态规划
排序
桶排序
计数排序
基数排序
归并排序
快速选择
二分查找
记忆化搜索
深度优先搜索
广度优先搜索
双指针
位运算
前缀和
计数
滑动窗口
状态压缩
哈希函数
滚动哈希
扫描线
其他
数学
数论
几何
博弈
模拟
组合数学
随机化
概率与统计
水塘抽样
拒绝采样
数据库
设计 数据流
脑筋急转弯
交互
迭代器
多线程
题号 | 标题 | 题解 | 标签 | 难度 | 力扣 |
---|---|---|---|---|---|
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+ | 🔴 | 🀄️ |