【字节跳动】C++岗-暑期实习后端面经

一面

介绍科研经历,介绍了一通啥也没问,直接做题。(因为科研方向真的很偏啊)
找数组中的前k大个数,有哪些方法,分析时间复杂度和空间复杂度,实现其中一种,最后写了一个用小顶堆实现的
海量IP,给定IP,输出IP出现的次数,分析时间复杂度和空间复杂度,答了字典树,哈希,位图
select poll epoll区别,什么时候用select和poll
sizeof
C++内存模型,常量存储区,静态变量和全局变量
虚函数的实现
udp适用于什么场景
tcp和udp可以绑定到同一个端口吗?如何实现
http协议,connection选项的作用
如何优化一条sql的查询语句
msyql有哪些索引
联合索引,最左匹配的原理
redis有哪些淘汰策略

二面

研究生做了哪些工作
科研发论文的过程
概率题:一个地方的夫妻,一胎生了男孩继续生,生了女孩不再生,二三四五胎…亦然,直到生个女孩,问最后男孩女孩的比例,问一个夫妻生男孩的个数的期望是多少
概率题:有一个函数rand7可以随机生成0到7,问如何使用rand7实现rand5,证明机会均等。又问如何使用rand5实现rand7。
socket编程的流程,accept调用和三次握手的关系,accept什么时候会阻塞,accept队列是由谁维护的
编程:之字形打印二叉树

三面

研究生做了哪些工作
项目,这里面的细节问了很多,感觉每次都能问到痛点
协程介绍一下,协程怎么调度
python java了解多少
一个服务如何提高并发
场景题:一千台服务器两两连接,服务器之间的延迟不断变化,如何确定任意两台服务器之间的最短路径,答了floyd算法,问floyd算法怎么写。最后写两个函数,一个函数根据服务器之间的延迟更新图,一个函数实现迪杰斯特拉算法。
实习时长

感受

一二三面连着,一气呵成,因为没想到还会问概率题,中间二面让给问懵了,两个概率题答得都很差,当时以为二面都要挂了,还好面试官给了三面的机会。隔天进行了HR面,问得都是些常规问题,告知下周五之前出结果。

发表评论

后才能评论