【滴滴】C++岗-好想成为大佬.jpg

一面

7月26日下午3点左右。

中午在床上午休,被hr一个电话提前拉起来面试的。

  1. 自我介绍
  2. 详细介绍自己最重要的项目,深挖项目中的知识点和如何做的
  3. lru缓存置换算法,及其他内存置换算法
  4. 线程池中线程与内核数目的关系
  5. Mysql数据库的索引结构(哈希表+B+树)
  6. 手撕算法:
    1)生产者消费者(不记得了,就直说了,他就给我换了道题)
    2)C++单例模式
    3)N叉树前序遍历(我先写的递归方法,他说太简单了叫我写迭代方法,我就又写了迭代方法)
  7. 反问:技术栈(C++和golang),后续流程
    一面中规中矩。

二面

10分钟后。

  1. 自我介绍
  2. 详细介绍自己最重要的项目,深挖项目里面的知识点和如何做的
  3. 扣redis和自己写缓存的区别、作用、场景细节等
  4. 另一个项目里面有线程池,深挖线程池内线程使用场景,如何解决线程等待队列的问题
  5. 如何写一个好的接口,扣写好的代码的原则
  6. 手撕代码:
    1)链表有环
    2)如何找到链表环点
    3)计算链表环的长度和环外面的长度
  7. 反问:技术栈 (C++和golang)和给我的建议(多学习,多积累),后续流程
    二面面试官人很厉害,问题深度和引导都非常好,感觉学到很多。

三面

10分钟后。

  1. 自我介绍
  2. 详细介绍自己最重要的项目,深挖项目里面的知识点和如何做的
  3. C++的虚函数表
  4. stl中的map和unordered_map
  5. 虚拟内存技术的优点
  6. malloc和mmp内存分配
  7. 手撕代码:在一无序的数组中,如果一个数大于另一个数的2倍,则两数为一对,找到数组中最多几对这样的数。
    我提出先排序后遍历,时间复杂度太高不行。我再提出空间换时间,一顿讨论发现不行。
    面试官最后提示分两半,遍历其中一半,剩下一半有序数组使用二分查找最接近2倍值,时间复杂度O(nlogn)
  8. 我的爱好,说到看书时面试官终于笑了(太难了,全程板着脸)
    三面面试官有些严肃,讨论过程还是很和谐的。

整体感觉滴滴面试体验不错,面试官好评!
求滴滴给个offer啊!!!
许愿OC!!!

发表评论

后才能评论