GithubHelp home page GithubHelp logo

cppinterview's Introduction

GitHub

C/C++系统开发

一、面试篇

1. 基础知识

  1. C++编程语言
  2. 数据结构与算法
  3. 操作系统
  4. 数据库
  5. 计算机网络
  6. 项目
  7. 系统设计

2. 行业知识

二、笔试篇

1. 高频算法类型

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

2. 笔试技巧

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

三、书单

1. C++

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

2. 计算机基础

  • 《深入理解计算机系统》第三版
  • 《Linux 高性能服务器编程》 游双
  • 《数据库系统概念》第七版

3. 算法

  • 《剑指 offer》何海涛
  • 《程序员面试指南》左程云

四、课程

五、刷题网站

  1. PAT 系统
  2. LeetCode
  3. AcWing

六、面试问题(数据库内核开发岗)

  • 内核态和用户态有什么区别?从这两个视角,描述一下调用 fwrite 写入数据到磁盘的整个过程用户态和内核态做了什么事情?
  • B+树和哈希表的区别?B+树和 LSM-Tree 的区别及应用场景?
  • 操作系统中使用页表机制有什么好处?解决了什么问题?
  • Postgres 数据库是使用什么方式保证的 ACID 特性?
  • Hash join 的执行流程和实现细节?

cppinterview's People

Contributors

peppayao avatar syaojun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.