虎牙 C++ 后台开发暑期实习面经(从一面到 hr )
项目经历:无
比赛经历:2019 年广东省赛银牌,2019 年 ACM-ICPC(似乎应该叫 JB-ICPC ?) 南京站,上海站银牌
首先感谢一波牛客网,牛客网提供了非常多的资料,包括一些基础知识的整理,还有一些求职专栏,教了许多写简历还有面试的技巧。
当然还要感谢讨论区分享面经的大哥们,也是对面试帮助巨大。
一面 3.26 (1 h 15 mins)
-
自我介绍
-
map 和 set 底层是用什么数据结构实现?用 set 实现 map?(set<pair<key, value>>)
-
问了下 ACM 经历
- 讲下二分吧,有什么跟二分相关的算法
- 线段树的应用(几个基本操作,线段树上二分啥的)
- 讲一下你觉得比较有趣的算法(吹了一波点分治)
- 讲一讲 dp
-
最后让我写了一个八皇后的代码填空题
-
提问环节
- Q:面试官你有面过 ACMer 吗?对 ACMer 的评价如何?
- A:我们这边很喜欢 ACMer 的。
总体来说面试氛围比较轻松,一开始是电话面,后来信号不好换成腾讯会议才写了代码
二面 3.27 (42 mins)
-
拷贝赋值函数和拷贝构造函数
-
每次插入一条线段,重叠的线段可以合并,插入多次,每次插入求最长线段。(用 set 维护线段,类似珂朵莉树)
-
给出一个数组表示矩形的高度,矩形的宽度是 1,求最大子矩形(就那道经典的单调栈)
-
电影有评分,设计一个推荐算法使得推荐电影的概率比跟电影评分一样,比如 a 是 7.0 分,b 是 1.0 分,那么 a:b = 7:1。
-
(大概思路是按比例把对应的东西放到 vector 里面,然后随机到什么就是什么,后来优化空间就转化成一个电影对应一个区间,随机到哪个区间就是哪个电影)
-
-
设计一个 [0,n) 概率相同的 rand (由上一题的随机引出这个问题)
-
提问环节,问了大概是做什么的,面试官很耐心地跟我讲了音视频大概需要解决的一些技术问题。
依然没有问到计算机基础,比较神秘,感觉跟其他虎牙面经不太一样,整个过程还是比较轻松的
hr 面 3.31 (45 mins)
-
自我介绍
-
为什么选择打 ACM
-
扯了一些 ACM 经历
- 如何训练的
- 在队伍里充当什么角色
- 哪一场比赛印象深刻?为什么
-
你在大学生活中除了竞赛还做过哪些有意义的事情
-
讲一下对互联网公司或者说互联网产品的理解
-
了解虎牙这边做的一些方向吗
-
现在还有面哪些公司吗
-
什么时候可以入职
总结
虎牙给我的感觉就是整个流程非常快,效率高,面试也相对轻松,聊起来挺愉快的(可能他们比较喜欢 ACMer ?),前几天 hr 小姐姐联系我应该不久就有 offer call 了。