> For the complete documentation index, see [llms.txt](https://mqjyl2012.gitbook.io/algorithm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems.md).

# 程序设计题

1、设计一个数据结构 `list: rpush rpop lpush lpop index` 五种方法的时间复杂度均为 O(1)，数据量上限是`100w`。（字节跳动面试题，双数组，头对头）

2、实现`ntol`函数（网络编程 与 位运算 相关）

3、设计具有`setAll`功能的哈希表（阿里面试题）

4、实现阻塞队列（字节跳动面试题）

5、实现读写锁（字节跳动面试题）

6、实现内存池（阿里面试）

7、实现多线程交替打印（头条面试）

8、实现线程池（快手面试题）

9、实现生产者、消费者模型

10、设计对象池（连接池）

11、设计`RandomPool`结构

12、设计环形队列

13、兄弟单词（拼多多面试）

兄弟单词：一个单词a，如果交换单词中字母的顺序可以得到另外一个单词b，则b是a的兄弟单词。设计合理的存储字典的结构，用户输入一个单词，找出这个单词的所有兄弟单词。

14、高性能local cache

15、智能指针

16、实现string类

17、设计定时任务管理器
