汇总篇-快手-C++工程师-广告+搜推面经

由于未能接受阿里云的C++拷打,那么手子的C++拷打便成了楼主秋招过程中最受拷打的经历。毕竟快手(或者说搜广推组)全线C++17(面试官说的),C++11那点新特性都看不上了,不问点模版元编程(SFINAE,类型擦除)都对不起C++这十多年的发展。

因为快手有无限复活机制,所以楼主投了两次,第一次被搜推组捞,第二次被广告组捞,不过这两应该在同一个大部门下。

面试汇总:

  • 广告二面排序
  • 搜推二面挂(秋招前期,K个一组刷的还不甚熟练,没一次性撕出来便落了下乘)

广告二面

手写跳表吗,有意思。

  1. 自我介绍
  2. 个人经历盘点
  3. 说说mysql索引类型(b+树,hash,bitset),知道索引压缩技术吗(不知道)
  4. 看过什么源码(leveldb,mysql),leveldb内存数据结构是啥(不知道,只会扯lsm tree)
  5. 看过leveldb是吧,来写个跳表吧(花20min写了个残废insert,中途被面试官问你刷过题没有,楼主顿觉毫无希望,直接嘴硬给楼主出hot100楼主早就写完了)
  6. ob大赛干嘛的
  7. 说点无锁数据结构(rcu、cow)
  8. 内存分配器了解吗(不了解,说了一下数据库buffer pool的prefetch和后台刷脏页的设计)
  9. 职业规划(楼主清楚自己对搜广推毫无了解,只能说想要成长性高一点的,顺便diss一下算法工程师和支付业务开发)
  10. 干嘛不做数据库开发(太菜了这话当然不能说啦,表明自己还是对上层应用更感兴趣一点,搜广推这种比纯业务开发偏鸡架,比鸡架偏业务的岗很合适楼主)
  11. 反问: 无fa可说,搜广推按最近面下来的感觉,大家干的活基本所差无几(用户点击与曝光log,特征持久化与更新,图算子编排巴拉巴拉,哪个公司都在搞这套)。 团队规模:30+人(哪个公司都这么多人)

凉了吗。

本来楼主觉得上次的快手二面部门(搜推架构)明明去年把主站的团队裁完了,按理说是缺人的,结果还是因为楼主的k个一组有瑕疵没撕出来挂了楼主而愤愤不平。与现在这个部门两相对比(搜推架构是1面反转链表2面k个一组,广告是1面合并k个链表2面跳表),看来还是想招人的,只是楼主莼菜,错失良机。

广告一面

面试官不喜欢楼主,嫌弃楼主C++水平和代码质量。

  1. 自我介绍
  2. 15445 简单询问,B+树、表级锁、行锁间隙锁实现原理、更简单的实现方法有没有,快照实现思想(mysql与pg对比),反正面试官也不太懂,就跑火车。
  3. C++拷打,unique_ptr的sizeof,加了删除器的sizeof
  4. lambda与伪函数与function与类型擦除(最后一个实在答不上来)
  5. 算法: 合并K个一组链表 优先级队列秒了,然后面试官说楼主代码质量不行。
  6. 反问: 部门:商业化广告 规模:4-5人,在扩张 作息:早十晚九

与b站二面面试官有相似的气息,在楼主面前吹自己团队的人都很厉害,那是什么意思呢?意思是楼主这么菜一个校招生就不要想进这么厉害的团队吗?

搜推二面

终于有八股文了。

  1. 自我介绍
  2. 个人经历盘点
  3. 虚拟内存的好处
  4. 内存为什么要有内核空间
  5. tcp连接断开的几种方式(拔网线,断电,杀进程),timeout不好,怎么解决(heartbeat)
  6. 锁类型相关(开始吟诵Java八股,C++锁其实没这么多八股) 参考:https://gg2002.github.io/2025/04/21/Program%20Language%20Design/os-and-pl-mutex/
  7. hashmap上锁用什么好(分段锁+读写锁,或者cow),读写锁一定好吗(当然不一定)?
  8. C++新特性吟诵(纯吟诵,move,function,thread,constexpr,import,coroutine)
  9. move vector底层会发生什么
  10. 为什么要有thread库(楼主还真不知道,说了为了程序员更好的封装使用,面试官不满)
  11. static_assert底层原理(更是不知道,只能口胡编译器能推断出来)
  12. 算法: k个一组反转链表,在最后一个循环一直segmentation fault,闹麻了,内存地址都打印出来了还显示segmentation fault,不知道是不是平台问题。
  13. 反问: 部门:负责主站与海外的推荐系统 工作作息:弹性工作制,互联网平均作息

楼主的C++八股答得不是很妙,感觉是不是快手的就爱出这种冷门八股,new怎么在栈上分配空间(答案是new本来可以指定内存区域分配内存,但是一般没人这么写,而且new还有另一个指定内存不足也不报错而是直接返回nullptr的写法,都很邪门,感觉是纯嵌入式写法)也是楼主在快手面经里看到的。最重要的k个一组希望不要挂楼主。

搜推一面

推荐系统的。又一次问到了DDD,饶了楼主。

  1. 面试官自我介绍
  2. 毕设做什么的(楼主做cv的),然后问了半小时
  3. 说说对DDD的理解(没准备好啊,只能拿从百度三面的分布式事务链条现学现卖,面试官不满)
  4. 反转链表(找不到反转后的head导致撕了快20min)
  5. 面试官说没时间就问点简单的,RAII思想
  6. 面试官说复杂的问题后面环节问
  7. 反问: 干嘛问毕设:回答人生选择重要性、员工做自己不爱的事情也要认真做巴拉巴拉(但是这不应该是hr或主管面才该问的吗) 部门:推荐系统架构 作息:早十晚九 技术栈:python+C++

懵逼地开始,懵逼地结束

#面试问题记录##发面经攒人品#
全部评论

相关推荐

昨天 10:05
西北大学 golang
点赞 评论 收藏
分享
09-11 21:49
门头沟学院 C++
📍面试公司:影石🕐面试时间:9.11💻面试岗位:C++开发❓面试问题:一、自我介绍二、项目三、八股1. deque的底层实现?插入和修改的复杂度?双端的插入和删除是怎么实现的?2. ordered_map和unordered_map的区别?3. 红黑树的特性?为什么不用二叉平衡树?4. 哈希表的冲突怎么解决?知道负载因子吗?如果往哈希表大量插入数据会怎么办?5. 迭代器失效的状态或者原因有哪些?6. 全局静态变量初始化的时期?存放在哪里?7. 类的全局静态实例什么时候初始化的?比如static A a8. 编译器会给一个类默认生成哪些函数?自定义有参构造函数后,若未加 =delete,编译器仍会生成默认构造函数吗?9. 讲一讲virtual关键字?虚函数的实现机制?10. 模板通常定义在哪里?如果声明在.h文件,定义在.cpp文件,其他cpp文件能使用这个模板吗?看我答不上来,面试官让我下来了解下**模板的实例化orz**11. 死锁产生的原因以及解决方法?12. 一个程序本来只要运行1s,现在运行了1min该怎么排查?四、手撕最大连续子数组的和,空间复杂度从On优化到O1,时间复杂度从On到On/2(多线程或者双指针,不过没让实现)五、反问岗位主要做那些业务?校招生会被分到哪个组?面试官介绍下他们是做剪辑的,“我们组面的话大概率是我们组”是不是在暗示能过qaq🙌面试感想:面试官很好,会引导答不上来的问题许愿HR面
查看16道真题和解析
点赞 评论 收藏
分享
评论
7
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务