简介

在线电子版:C/C++系统开发面试手册

基础知识

  1. 编程语言(C++JavaGo)

笔试题

  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经典题目讲解:参考这个仓库

书单

C++

  • 《C++ Primer》第五版

  • 《后台开发: 核心技术与应用实践》 徐晓鑫

Java

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

计算机基础

  • 《深入理解计算机系统》

  • 《Linux高性能服务器编程》 游双

  • 《Redis设计与实现》黄健宏

算法

  • 《算法导论》第三版

  • 《算法笔记》胡凡

  • 《剑指offer》何海涛

  • 《算法竞赛入门指南》刘汝佳 第二版

  • 《程序员面试指南》左程云

AI

  • 《机器学习》周志华

课程

题库

算法

  • 左程云

  • 花花酱

  • 闫学灿

其他

Last updated