字节和腾讯暑期实习后台开发面经

1. 字节一面-60分钟
a. 算法题
i. 数字序列中某一位的数字,剑指offer 44
ii. 二维数组中的查找,剑指offer 04
iii. 链表奇数节点单调递增,偶数节点单调递减,要求全链表有序
b. 基础相关
i. 介绍golang的channel
ii. golang的map是不是线程安全的
iii. 互斥锁,读写锁,死锁介绍
iv. 乐观锁和悲观锁介绍
v. map和hash map的区别,哈希冲突怎么解决
vi. topK问题
c. 项目相关
2. 字节二面-60分钟
a. 算法题
i. 最长不含重复字符的子字符串,剑指offer 48
ii. 二维矩阵求左上到右下的和最低路径,每个元素访问一次
b. 基础相关
i. IO多路复用
ii. 进程、线程、协程的概念和介绍
iii. 像Java这种有GC的语言是否存在内存泄漏
iv. 多线程编程模型
v. Reactor/Proactor的区别
vi. 通常栈里的对象比堆里的对象快,为什么
vii. 如何自学的
c. 项目相关
3. 字节三面-40分钟
a. 算法题
i. 积雨水Leetcode 42
b. 基础相关
i. 对golang有什么了解
ii. 同步/异步,阻塞/非阻塞的介绍,优缺点
iii. 数据库索引介绍,B+树为什么快,Hash索引与B+树索引的对比
iv. 为什么计算机分CPU缓存,内存,交换区,磁盘这样的层级结构
c. 项目相关
i. 为什么参考etcd/raft的实现
ii. Raft选举流程,与Paxos的区别
iii. 分布式数据库如何实现故障容错,介绍一个数据节点挂了的后续处理

1. 腾讯一面-90分钟
a. 算法题
i. void reverse(LinkNode *root),翻转链表
ii. int findKthInBST(TreeNode *root, int k),寻找二叉搜索树第k小的值
iii. double sqrt(double value, double eps),求平方根
b. 智力题
64匹马和8个赛道,没有计时器,最多需要比赛几次能够获得前4快的马
c. 基础相关
i. topK问题
ii. C++ STL里容器的底层实现
iii. 代码改错(vector迭代器失效)
iv. 多线程同步机制有哪一些
v. 多线程里A线程持有锁,B线程调用fork()产生子进程,子进程里能否释放锁
vi. select, poll, epoll的区别,epoll ET/LT介绍
vii. OLAP, OLTP的区别
d. 项目相关
i. 共识算法
Raft和Paxos的区别
Raft选举流程,何时选举,如何保证数据可靠不丢
举例分析,5节点的集群,leader挂掉后到新leader诞生的全过程
ii. 如何设计一个支持多维度、数据立方的流数据聚合计算框架
2. 腾讯二面-50分钟
a. 算法题
int findPeak(const vector<int> &a),找峰值,{1, 2, 3}返回3,{1,4,7,6,5}返回7
b. 智力题
5L量筒和3L量筒,现在要4L水
c. 基础相关
i. 常见的排序算法,复杂度,解释快速排序的平均时间复杂度和最差时间复杂度,详细描述堆排序
ii. 红黑树的性质,与AVL树对比的优缺点
iii. topK问题
iv. C++ class和struct的区别
v. C++动态绑定机制
vi. 构造函数是否可以是虚函数,为什么
vii. C++ STL里容器的底层实现
viii. 输入URL到网页显示全过程
ix. TCP三次握手,详细描述第三次ACK丢了的情况
x. DNS报文用什么协议传递,为什么
xi. HTTP与HTTPS的区别
xii. epoll ET/LT介绍,如果ET读取数据到一半被中断(比如信号)怎么办
xiii. 设计一个计时器Timer以及Timer的管理类,只允许使用C++11 STL
要求支持插入Timer返回ID
根据ID可以找到Timer
可以根据ID删除Timer
Timer支持单次唤醒,周期唤醒,修改唤醒时间

3. 腾讯三面-70分钟
a. 算法题
void quickSort(vector<int> &a),快速排序,如何不递归实现
b. 基础相关
i. 如何判断单链表有环
ii. C++动态绑定机制
iii. C++派生类构造顺序,析构顺序
iv. 函数调用参数传递机制,如果是struct变量如何传递
v. 异常安全的类型
vi. 常见排序算法,复杂度,解释快速排序的平均时间复杂度和最差时间复杂度,解释pivot的选取对复杂度的影响,实现快速排序
vii. 有没有比快排更快的排序,解释一下桶排序的过程,适用场景
viii. map/unordered_map的底层实现,复杂度,适用场景
ix. TCP三次握手,TCP如何实现有序,seq/ack号超过最大值了怎么办,起始seq如何选择,为什么
x. HTTP的Get/Post有什么差别
xi. epoll ET/LT介绍
xii. 进程和线程的区别
xiii. 进程间通信方式,哪个效率最高,为什么
xiv. 线程间通信方式,同步机制,并发编程模型(Actor/CSP),死锁
xv. 数据库索引介绍,为什么有索引会变快
xvi. 数据库事务的作用,ACID介绍
c. 项目相关
i. Raft
Raft为什么能实现高可用,选举流程,如何保证数据一致性和可靠性,成员变更,优化
ii. 发布订阅
1) 整体架构介绍,为什么选用epoll
2) 介绍一个完整的订阅和反订阅流程
3) 如何实现流量控制,接收队列满了怎么办
4) 流数据持久化和高可用

没有录音,每次面试后凭印象记录的,供参考
#实习##面经##字节跳动##腾讯#
全部评论
阿里巴巴政务钉钉事业部,阿里新赛道,飞速发展的事业部,方不方便发简历过来呢,我们特别希望收到优秀同学的简历,邮箱lh242628@alibaba-inc.com
1 回复
分享
发布于 2020-03-28 11:58
项目是6.824吗?tql
点赞 回复
分享
发布于 2020-03-27 18:35
小红书
校招火热招聘中
官网直投
什么项目啊?能推荐一下吗
点赞 回复
分享
发布于 2020-03-27 18:36
这么变态,面的啥呀?
点赞 回复
分享
发布于 2020-03-27 18:41
老哥的字节三面算法接雨水撕出来了吗?
点赞 回复
分享
发布于 2020-03-27 20:19
好强。
点赞 回复
分享
发布于 2020-03-28 00:33
@所有人 从投递简历->到准备面试,都是你关心的干货【字节跳动-投递必读】https://bytedance.feishu.cn/docs/doccnG71V5OtL4GmlyMNnSZv3Cb#i96SHV
点赞 回复
分享
发布于 2020-03-28 09:13
所有问构造函数能否是虚函数的部门一律拉黑。。。。
点赞 回复
分享
发布于 2020-03-28 10:04
好强
点赞 回复
分享
发布于 2020-03-28 10:42
{"pureText":"","imgs":[{"src":"https://uploadfiles.nowcoder.com/images/20200328/621440138_1585376934733_42FC6592D0682B3B5FB8930B625A3730","alt":"A0nFjSd78tW1OULO9TZq7QdbGHftyBmS.jpg","width":"1440.0","height":"2310.0"}]}
点赞 回复
分享
发布于 2020-03-28 14:29

相关推荐

点赞 评论 收藏
转发
点赞 评论 收藏
转发
17 177 评论
分享
牛客网
牛客企业服务