2022届暑期实习字节面经总结

3.21笔试，2小时4题 

题目1：给定一个数组代表猴子的食量，每个猴子按顺序取食，猴子们会拿比自己食量多的食物，但不会超过自己食量的一倍或者当前食物量的一半，求最少需要多少食物才能保证所有猴子都吃饱 
反向模拟一遍即可，每次加上min(当前食物量，当前猴子食量两倍) 

题目2：蛋糕店老板有N块蛋糕，每块美味值a[i]，他决定送给李华其中连续的若干块，李华最多接受M块，求最大能接受的美味值
思路类似于leetcode239，但是这次要维护的是滑动窗口内前缀和的最大值

题目3：一个文本编辑器，有三种操作，增加或减少一个字符，花费为A，复制粘贴一遍所有字符，花费为B，求恰好生成N个字符的最小花费
leetcode1553的增强版，多了一个减少字符的操作让这题复杂了很多，而且数据范围特别大（1e18），我怎么搜都会爆栈，最终只过了30% 

题目4：给定一个长字符串和一个长度为2的短字符串，允许最多修改长字符串k次，求修改后长字符串最多有多少个子序列等于短字符串 
没时间写了，靠短字符串两个字符相等的情况骗了20%的分 

总的来说字节的笔试是很难的，但是实际上看身边同学和网上其他人的情况，做个1.5题都有可能给面试，2题就已经很稳了 

3.29抖音一面： 

一个多小时的八股文轰炸，把我问晕了 
1.继承多态重载 
2.c++实现多态的方法 
3.数据库ACID 
4.脏读和幻读 
5.mysql隔离级别 
6.索引的作用 
7.为什么用b+树 
8.建索引建在哪些列 
9.聚类索引和非聚类索引 
10.数据库的范式 
11.sql注入 
12.线程和进程的区别 
13.进程间通信 
14.管道有哪些 
15.线程池 
16.软连接和硬连接 
17.了解vfs吗 
18.tcp如何保证可靠性 
19.gobackn和选择重传 
20.arp协议 
21.tcp包头部包含什么 
22.http头部包含什么 
23.我的八股文水平实在是不太行，在录音里听到自己说了好多次不清楚，不了解，没听说过 由于面试时带着耳机，录音只有我自己的回答，这些不清楚的问题有些没记录到，实际的问题比上面写的还要多一些 
24.算法题：之字形打印二叉树 
这个倒是很快用bfs写出来了，但是前面的八股文环节表现实在是太差了，过了两天收到感谢信 

过了几天被一个产品研发的部门捞了起来 
4.9产品研发一面： 

1.C和C++区别 
2.多态和虚函数 
3.virtual关键字和虚函数表 
4.构造函数和析构函数是不是虚函数 
5.网桥、路由器、交换机分别属于哪一层，它们的功能 
6.tcp和udp的区别和应用场景 
7.如何改进udp使其变得可靠 
8.http状态码 
9.http加密方式 
10.非对称加密 
11.算法题1：有n个信封，如果一个信封长宽都严格大于另一个，则大的信封可以装入那个小的信封，求最多能够有几个信封能装成一个套娃 
先排序，设一个信封能装dp[i]个信封，则dp[i]=max(dp[j])+1，j是能被这个信封装下的小信封，答案是dp的最大值 
12.算法题2：一个由01表示的二维数组作为地图，0代表水，1代表陆地，有一天水平面上升了，淹掉了所有的岛，但是和陆地相连（在二维数组边缘）的部分不会被淹没，求水平面上涨后的地图 
从二维数组周围绕一圈dfs，记录下与陆地相连的部分，再把其他地方都改成水就可以 

一面过了马上就是二面： 

1.三次握手四次挥手 
2.tcp拥塞控制 
3.如何改进udp使它拥有拥塞控制的功能 
4.数据库ACID 
5.隔离级别 
6.脏读幻读 
7.数据库索引 index(b,c)，查询 where b=1 and a=1和where c=1 and b=1时是否会走索引 
8.数据库为什么用b+树 
9.算法题：K个一组链表反转 
这个本身没什么思维难度，但是写起来很麻烦 

这个时候我已经有腾讯的oc和微软的信息收集了，于是在hr约三面的时候主动终止了流程
