终于等到字节跳动意向书了,实习+秋招共8面
三月份的时候投过字节跳动的后端开发实习,虽然通过了,由于地点原因错过了,六月底投了提前批,最先被互娱捞起来,然而二面挂了,本以为提前批没戏了,第二天就被头条研发捞起来了,经过三面,今天下午终于等来了意向书。
双非非科班真的不容易啊,提前批投的的简历大都简历都没过,感谢牛客的面经,也希望大家都能拿到大厂offer。
实习的面经见我以前的帖子:https://www.nowcoder.com/discuss/166609
字节跳动互娱秋招提前批
在牛客网,近两个星期都被字节跳动的内推帖子给刷屏了,我基本每个部门都投了简历,最后是互娱给捞起来了,
感谢字节跳动不刷我这种双非的辣鸡,还是非科班的。。。
7.5牛客视频一面1h
自我介绍,然后就手撕。。。
编程题:括号字符串判断合法性。给了十分钟,这么简单的题,我还用了多余的空间,提醒之下改过来了。
前一题改进:找到最长的合法括号子串。只用讲思路,我只能想到暴力的方法,然后就跳过了。
判断两个链表是否相交。讲思路和复杂度,也很简单。
C++比较熟悉是吧,讲讲#define和const
static在各种情况下的声明周期和作用域
如果有一个static对象,构造和析构函数在什么时候做
熟悉STL的哪些容器。讲讲vector吧
为什么每次要1.5倍或者2倍的方式扩容,而不是用一个定值扩容
push_back的时间复杂度是多少
如果调用n次push_back,准确的时间复杂度是多少
比较快的几种排序,为什么快排比堆排快
详细讲讲TCP的四次挥手
为什么要四次
TIME_WAIT的作用
CLOSE_WAIT过多产生的原因及解决办法
TCP粘包问题
进程和线程
创建一个线程需要消耗什么资源
堆和栈有什么区别
栈的大小是固定的吗
怎么测量栈的大小
栈与堆的分配速度
内存泄露怎么处理
物理内存和虚拟内存
Linux下怎么查看进程,查看进程的运行目录
有一个日志文件,里面有一些接口的访问数据,怎么让这个文件的接口访问次数逆序输出
有什么问题要问的?评价一下我,emmmm基础还行,但是还不够深入
看来一面还是给足了面子,只手撕了一道题,而且还是很简单的一道,说明后面才是重头戏
面完半个钟后,HR就约下周一二面
7.8牛客视频二面1h10min凉凉
自我介绍
说说你收货最大的一个项目
然后就开始一道简单的题了,这也是一个凉凉的开始。。。字符串反转,没错,就这么简单
然而我浪费了面试官半个小时的时间,写了大概十分钟,反转的函数写出来了,
但是输入搞了我二十分钟也没搞出来orz。。。空格用cin怎么输入。。然后面试官就一直盯着我,
也不说话,emmmmm。过了很久,他说还有没其他方法,想了会,他说为什么不用堆栈呢,最简单。
我用的是原地反转,我说不用额外空间。。然后就不了了之了。。。
接着第二道很简单的题,这真的是字节跳动?不用任何变量实现strlen函数,
递归两分钟搞定
TCP三次握手为什么不可以用两次?我扯了扯可能是安全问题,又浪费了十多分钟
换个问题吧,初始序列号为什么是随机的?我又扯到安全问题,emmmm
多个进程可以同时绑定一个TCP端口吗
有一个日志文件,记录着一些id,找出出现次数最多的十条记录?内存不够怎么办?
之后就开始瞎扯了,玩过微博吗,玩朋友圈吗?说说朋友圈是怎么设计的,
假如你有两千个好友,你打开朋友圈,然后就有按照时间顺序排好的朋友圈,
你会怎么设计?瞎扯了二十分钟orz
你觉得最重要的一门课是什么
一首凉凉送给我自己
第二天,收到感谢信
7.12视频一面1h
收到感谢信后的第二天又被头条研发部门的捞起来了,HR打电话约7.12视频面试
面试官因为开会迟到了10min。。。
首先自我介绍
介绍其中一个有关Raft的项目,简单说了Raft的流程
如果出现脑裂,即有两个leader,会怎样
编程题:一个数组,将大于0的数字排在数组前面,相对顺序不要求
编程题:实现一个队列,大小定长
说说虚拟内存地址
说说现在实习做的项目
有什么问题要问的?
7.24视频二面1h30min
由于提前批人数太多,一二面差了12天。。。
自我介绍
TCP一次能多少数据?说了滑动窗口和拥塞窗口的限制。。。为什么要慢启动?拥塞避免窗口的阀值怎么确定?
滑动窗口怎么移动?
说说快速重传和快速恢复。
客户端连接服务端,服务端创建socket失败,有哪些原因,怎么解决?瞎扯。。。面试从这里就开始崩盘了。。。
伪代码写select之后的操作。。。大部分都忘了。。。
一个非阻塞的socket,缓冲区大小是100字节,写入200字节会怎样,返回什么?没试过,瞎扯。。。
实现memcpy。写了十分钟,面试官提示指针有问题。又改了几分钟,还是没改对。。。
最后还是在面试官的提示下才明白问题在哪,最后才改对了,最后还问了一个问题:一个一个字节拷贝比较慢,有没有快一点的办法。。。我太菜了orz,这还只是噩梦的开始
再写到题吧,每隔k个元素反转链表,例如 1->2->3->4->5->6->7->8->NULL 变为 3->2->1->6->5->4->8->7->NULL。
链表的题真的头疼。写了二十多分钟还没写完,面试官提示有个地方没写对,然后又改了几分钟。
然后面试官又说还是有问题,改了几分钟还没改出来,面试官说换道题吧。。。我等这句话等了好久。。。
面试官说了句你这指针学的不好啊。
64匹马,8个赛道,最少要比多少次?这道题之前看过,不过讲的有点不太流畅。
有什么要问的?
总结:第一次面的那么惨烈,之前知道自己菜,今天发现比自己预想的还要菜。
六点面完试,八点hr打过来说约三面?????
7.25视频三面50min
自我介绍
实习是做数据库的是吧,负责哪个模块
那了解一些常见的关系型数据库吗?其实不太了解,只能知道多少讲多少了。。。
说到了MySQL的索引底层是B+树,为什么要用B+树?
说说事务的隔离级别和都是怎么实现的?
给了个可重复读的题,A事务先读a(a=2)、然后B事务写a(a=3),A读a(a=?),B提交,A再读a(a=?),A提交,A再读a(a=?)
联合索引怎样用?emmmm不会。。。
那写个SQL的题吧?还是不会。。。要凉了
那出个设计题吧:有一个访问量很高的贴吧,怎么设计,有哪些可以优化的点?扯到了HTTP,和缓存数据库。。。
出道代码题吧:
给定m个可以重复的字符 [a, b, c, c],以及一个长度为n的字符串tbcacbdata, 问能否在这个字符串中找到一个长度为m的连续子串,使得这个子串刚好由上面m个字符组成,顺序无所谓, 返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面这个例子,3。
写了十五分钟,思路应该没什么问题。。。
有什么要问的吗?
数据库真的不怎么会。。。这是我面的最短时间的面试了,希望能过吧。
我觉得后两次面试能过的一个重要原因是我之前实习面试通过了,因为这两个面试官都提到了这件事,这个加成很大,不然二面的时候就凉了,各位小伙伴还是要注意自己的面试记录啊。
#字节跳动##面经##校招##C++工程师#