这个仓库整理 C++ 常见手撕代码题和算法场景题,目标是让面试复习资料既能直接阅读,也能逐步扩展成可编译、可测试、可维护的练习库。
内容分成两部分:
problems/:偏代码实现,每道题包含题目说明、接口、实现、测试和实现细节。docs/scenario_questions/:偏面试口述,整理 200 道算法场景题,按 10 个主题分组,每组 20 题。
这个 public 版本不包含个人简历、个人复习进度和本地会话记录,适合公开协作和二次维护。
这部分和 problems/* 分开维护,按组学习,适合在 GitHub App 中直接按文档刷题:
- 第01组:数组、双指针、滑动窗口
- 第02组:排序、查找、二分、选择算法
- 第03组:哈希、集合、计数、频率统计
- 第04组:链表、栈、队列、堆、单调结构
- 第05组:区间、扫描线、调度、贪心
- 第06组:树、BST、Trie
- 第07组:图、并查集、最短路、拓扑排序
- 第08组:动态规划、状态转移、背包、博弈
- 第09组:回溯、搜索、组合枚举、剪枝
- 第10组:数据流、缓存、检索、推荐、海量处理
练习链表节点、前驱/后继指针、头尾边界和任意位置插入删除。
练习哈希表和双向链表组合,实现 O(1) 查询、更新和淘汰。
练习层序建树、前序+中序建树,以及前序、中序、后序、层序遍历。
当前先整理 shared_ptr 的核心概念:共享所有权、引用计数、循环引用和 weak_ptr。
每道题按这个顺序看:
README.md:先理解题目要求和核心思路。docs/IMPLEMENTATION_DETAILS.md:看边界情况和实现拆解。include/:看对外接口怎么设计。src/:看具体实现。tests/:看哪些场景被验证。
- 单向链表
- 栈和队列
- 循环队列
- 二叉搜索树
- 堆和优先队列
- Trie 前缀树
- 并查集
- 排序算法
- 二分查找
- 字符串匹配
欢迎补充新的题目、改进讲解、修正复杂度或补充测试。建议先阅读 CONTRIBUTING.md,按现有目录结构提交改动。