# 程序设计题

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、设计定时任务管理器


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mqjyl2012.gitbook.io/algorithm/interview-question/design-problems.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
