今日头条后端实习面经(一二三面、已OC)
欢迎找我内推
背景
base北京
双非一本,有实验室项目和字节训练营项目
一面
自我介绍
红包雨怎么设计的
为什么还要用Mysql
那你讲讲为什么要用redis
redis除了并发量还有什么么
如何加redis
那你们直接访问redis,还要用mysql干嘛
那redis和mysql有什么不同
还有什么么,你说到了查
那mysql的索引有了解么
那你知道mysql底层用什么数据结构么
为什么用这个B+树查询会快
叶子节点具体是什么
http和https的区别了解过么
具体怎么加密的知道么
那http有哪些方法你了解过么
post和get有什么不同
post和put,get哪个更安全
算法
n * n的棋盘,两个人有黑白棋子,棋子由一个或多个正方形构成,一个正方形能占据一个格子,连续区域格子面积最大的赢,给你下完棋局的棋盘,计算谁赢
一开始理解错题目了,我还以为要我去算n*n博弈,心想也太难了,卡了几分钟才看到给了棋局,然后用bfs写了出来计算连同最大正方形呢
去问了是否能够割掉,是可以的
感觉是地图dp,但推不出来只能说dfs了,然后算了一下复杂度,发现其实也不高,因为很多情况都是可以直接剪掉的
二面
项目
- 讲讲红包雨项目中遇到的最大的挑战,
说了一下觉得自己面对的挑战有哪些,然后哪些地方做得不好(熔断降级啥的)
- 聊聊对熔断降级的看法
基础
- TCP
- TCP的三次握手
- TCP的四次挥手
- 为什么要三次握手
- 为什么要四次挥手
- 然后接下来围绕这两个讨论了很多
- TCP靠什么可靠的
- 进程间通信,共享内存
- 如何实现的
- 过程
- 如何保证顺序
算法
题目:给一个二叉树和一个节点,找到它的右邻居节点
层序遍历
- 优化的点,聊了个提前返回
- 另一个面试官过来问了一下还有优化空间么,我讲了个递归的算法,证明了一下正确性
- 空间复杂度,最多节点的那一层节点数目,最差情况满二叉树的叶子,然后推导了一下是多少
三面
基础
- 自我介绍
- 聊实验室项目
- 聊一下红包雨学到什么
- 我们这个视频面试会涉及到什么协议
- 我说虽然课本啥的说是UDP,但我猜TCP,然后又聊为什么
- https过程
- 看你Go用得比较多,那你对Go有什么了解么,觉得go和其他语言有什么不同么
算法
附加
- 说一个你觉得自己的最大优点和缺点
- 实习的周期