> For the complete documentation index, see [llms.txt](https://yaojun.gitbook.io/cppinterview/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://yaojun.gitbook.io/cppinterview/readme.md).

# 简介

[在线电子版：C/C++系统开发面试手册](https://syaojun.github.io/CPPInterview/)

## 基础知识

1. 编程语言([C++](https://github.com/SYaoJun/CPPInterview/blob/gh-pages/C++/README.md)、[Java](https://github.com/SYaoJun/CPPInterview/blob/gh-pages/Java/README.md)、[Go](https://github.com/SYaoJun/CPPInterview/blob/gh-pages/Go/README.md))
2. [数据结构与算法](https://github.com/SYaoJun/CPPInterview/blob/gh-pages/DS/README.md)
3. [操作系统](/cppinterview/di-ceng-xi-tong/cao-zuo-xi-tong.md)
4. [数据库](/cppinterview/di-ceng-xi-tong/shu-ju-ku-yuan-li.md)
5. [计算机网络](/cppinterview/ji-suan-ji-ji-chu-zhi-shi/ji-suan-ji-wang-luo.md)
6. [项目](https://github.com/SYaoJun/cpp_in_action)
7. [系统设计](/cppinterview/xi-tong-she-ji.md)

## 笔试题

1. 模拟 ★★★★★ 可难可易 大部分题都是模拟中使用某个算法优化
2. 贪心 ★★★ 按照某种规则排序
3. 字符串 ★★★ 输入输出容易搞人 双指针处理字符串空格单词
4. DFS/BFS ★★★ 有多少种组合数 图的最短时间
5. 滑动窗口/双指针 ★★ 最短或最长的子串 最多可变k次
6. DP ★★ 看运气 背包问题居多 遍历时维护最值
7. 堆 ★★ 学会自定义数据的排序规则
8. 并查集 ★★ 寻找连通分量和最大集合数量
9. 找规律/数学 ★ 看运气
10. 前缀和 ★ 子数组范围较小时直接用
11. 二分法 ★ 灵活运用库函数lower\_bound和upper\_bound
12. 单调栈 ★ 通常跟数组有关
13. 迪杰斯特拉算法/弗洛伊德 ★ 通常不考
14. 字典树 ★ 出现前缀字符串查询或者异或值直接用
15. 高精度 ★ 大数乘法或大数加法

* 注意

> 1. 数值较大的结果考虑用long long
> 2. 动态规划写不来，先写暴力过部分测试样例
> 3. 特殊输出先提交一下，骗点分了再说
> 4. 练习处理诡异输入的能力

## 手撕代码

* 剑指Offer
* LeetCode编号前200题
* 按tag刷题，每个类型刷10道左右

> - LeetCode经典题目讲解：参考这个[仓库](https://github.com/SYaoJun/LeetCode)。

## 书单

### C++

* 《C++ Primer》第五版
* 《后台开发: 核心技术与应用实践》 徐晓鑫

### Java

* 《深入理解JVM虚拟机》周志明

### 计算机基础

* 《深入理解计算机系统》
* 《Linux高性能服务器编程》 游双
* 《Redis设计与实现》黄健宏

### 算法

* 《算法导论》第三版
* 《算法笔记》胡凡
* 《剑指offer》何海涛
* 《算法竞赛入门指南》刘汝佳 第二版
* 《程序员面试指南》左程云

### AI

* 《机器学习》周志华

## 课程

* 《操作系统》[蒋炎岩](https://www.bilibili.com/video/BV1N741177F5)
* 《数据结构与算法》 陈越
* 《设计模式》[李建忠](https://www.bilibili.com/video/BV1Eb4y1m7Uj?from=search\&seid=8468035381340447890)
* 《深入理解计算机系统》[yaaangmin](https://space.bilibili.com/4564101)
* 《Linux网络编程》[黑马程序员](https://www.bilibili.com/video/BV1dt411f7TZ?p=142\&vd_source=e9f1ced96b267a4bc02ec41ca31d850a)

## 题库

1. [PAT数据结构与算法](https://pintia.cn/problem-sets/15/problems/type/7)
2. [LeetCode](https://leetcode.cn/problemset/all/)

## 算法

* 左程云
* 花花酱
* 闫学灿

## 其他

1. [LeetCode面试突袭](https://leetcode.cn/leetbook/detail/cpp-interview-highlights/)
2. [知乎@我不是匠人](https://www.zhihu.com/people/wan-yi-er-89)
3. [CSDN算法博客](https://blog.csdn.net/SYaoJun/article/details/102742093)
