字节-后端研发工程师-商业化技术岗位-c++
一面
1、自我介绍
2、项目介绍
3、查询qbs,对于mysql的读写
4、epoll、select、poll的区别
5、tcp和udp的使用场景
6、一致性hash与普通hash的区别
7、一致性hash之前某个物理节点宕掉之后,之前hash到这个节点的数据会怎么处理
8、目标节点比较少,请求的数据分布不均匀
引入了虚拟节点机制,对每一个服务器节点计算多个哈希,每个计算结果位置都放置一个此服务节点,称为虚拟节点。
9、一致性hash在查找时,出现一个更新请求,具体怎么找
10、hash环的底层数据结构是怎样的
可以是数组,查找可以使用二分查找等方法
11、多态、虚函数和纯虚函数
12、struct和union的区别
13、指针和引用区别
14、内联函数
15、开放性问题:100亿个数字,取出top100的数
16、堆的原理是什么,插入和弹出是怎么操作,时间复杂度是多少
17、最大堆插入一个数字,是怎么处理的
18、算法题:最长无重复子串长度
二面凉
算法题:
1、求逆序对:给定一个数组array,无序,元素不重复,int类型。定义"逆序对", 对任意下标i<j,array[i]>array[j],求数组中符合条件的"逆序对"数
2、提示用到归并排序,归并排序算法
3、数组,无序。int类型,求解这个数组最大的连续子序列之和。
4、static作用,类中和类外的区别
5、堆的时间复杂度,建堆的过程
6、LRU的实现