字节后端应届补招四面面经
终面面完快两周发offer了,回来还愿补一下面经
出结果应该挺快的,我大约一面一周后问过一次hr说是offer已经审批了
运气蛮好问的都挺基础的。。列了些还记得的
流程上是打算一天面完的,三面之后因为太晚就把四面推到两天后了
挂过被捞的记得复习挂的题目啊。。后面还会问的,面试有记录是这个意思
一面
- lower_bound和upper_bound区别,写一下lower_bound
- 二维vector的写法,先行再列和先列再行遍历
- 结构体{int学生学号,float成绩},按成绩排序两种实现
重载小于号和函数指针 - stl容器的内存增长
- malloc发生了什么
- fork进程共享哪些内容
- 父进程被kill子进程会怎么样
- 为什么free不需要传块大小而malloc需要
- free一个块发生了什么
- 空闲链表怎么组织的
- 空闲链表怎么节省存链接的空间
- 信号量是什么,见过哪些linux的锁,信号量和锁的区别
- 你怎么实现信号量
答创建一个int然后pv操作进行原子加减,不知道面试官满不满意。。 - 讲一下局部性,除了磁盘和内存之间还有哪里受局部性影响(cpu缓存和内存之间)
- 讲讲流量控制和拥塞控制是啥,分别减轻哪里的压力
- 慢启动算法
- nagle优化什么时候开什么时候不开
- epoll,select性能差异
- epoll的边缘触发为什么用非阻塞读
- 数据库为什么能加速数据存储
讲了下b+树原理
二面
- 实习干了啥
- 你觉得可不可能不需要ack实现完美传输
想了想给了个答案说纠错码纠错,面试官问纠错码毕竟有纠错能力限制,有没有再好的解决方法
回答了感觉不可能,假设了下没有ack的场景。。看面试官反应好像是确实没有。。 - 怎么降低重传率
- https的安全怎么实现的,接触过其他安全相关的技术吗
讲了下自己服务器改ssh端口禁密码登录设置公钥登陆啥的 - 堆栈区别,越详细越好
- 代码题,树的最小深度
- 局部性(咋又问。。)
- 代码题,用一个70%返回1的函数构造一个50%返回1的函数,给个框架就可以
三面
- 实习干了啥
- 自己做过的项目
- 讲讲自己做过的有趣的算法题
A和B轮流抽桌面上的n张卡,每张卡写有数字,数字可以一样,选中一张卡就拿走这张卡和桌面上所有数字小于这张卡的卡,没卡拿的输,输入一个数列表示n张卡,输出谁必胜
codeforces的某场div2a题,当时hack了好多分记得很清楚 - 有趣的数据结构?
讲了一下线段树,面试官问和前缀和有啥区别,又讲了讲前缀和,面试官说本来准备考一道前缀和代码题的不用考了 - 时间空下来然后面试官就讲了讲部门业务,面对的挑战啥的
四面
- 实习干了啥
- static关键字在全局、结构体内分别的作用
- 结构体和类的区别
- 找最短的子串包含全串字符
先说了个O(nlogn)的二分做法然后想了想又写了个O(n)的双指针