设计类习题是指要求设计一个类以完成某种特定需求,不是很复杂,通常一个类就能搞定,整体代码也不会特别长,但又能考察到一些基本的知识点,或者一些基本的技巧。通常是由一些日常中常见的任务经过简化而来。
因为通常都不会特别复杂,用常规的数据结构就能实现,此类问题最为关键的是要理清需求,各种边界条件的处理。一般情况下哈希表加上线性的结构如队栈或者链表就能解决。不用往复杂了想,常规数据结构,常用技术就能搞定,关键还是要读懂需求。
典型问题
题目 | 题解 | 说明 |
---|---|---|
146. LRU 缓存 | 题解 | 哈希表,双向链表 |
155. 最小栈 | 题解 | 栈 |
232. 用栈实现队列 | 题解 | 栈,队列 |
295. 数据流的中位数 | 题解 | 堆 |
304. 二维区域和检索 - 矩阵不可变 | 题解 | |
535. TinyURL 的加密与解密 | 题解 | 哈希表 |
622. 设计循环队列 | 题解 | 队列 |
641. 设计循环双端队列 | 题解 | 队列 |
901. 股票价格跨度 | 题解 | 单调栈 |
919. 完全二叉树插入器 | 题解 | 队列,BFS |
1206. 设计跳表 | 题解 | |
1656. 设计有序流 | 题解 | 队列 |
1797. 设计一个验证系统 | 题解 | 哈希表,双向链表,LRUCache |
剑指 Offer II 041. 滑动窗口的平均值 | 题解 | 队列 |
题解 | ||
题解 |