【面经】字节跳动后端开发视频架构方向一面二面
字节一面
常规自我介绍:姓名、学校专业、学校表现(也就是奖项、荣誉)、项目介绍。
听了项目以后开始问我项目相关的问题
之后就开始问常规问题
1、知道tcp/ip吗(只知道是一个协议簇,内部包含很多协议,向tcp、udp协议。)
2、ip协议的报文(不知道,对ip协议了解不多)
3、七层协议和五层协议(说了七层,然后说了四层(听叉了))
4、数据链路层的协议(直接说不太了解)
5、套接字流程
6、多态
7、内存管理
8、c语言和c struct的区别,没答好,就问了struct和class的区别
9、模板的编译
9、http协议
10、get和post的区别
11、倒序工字遍历二叉树(大概说了想法,但是有问题,面试官一直提示我,没写出来)
12、又想让我写快排(好久以前学的,没复习忘了)
13、然后又问我算法中什么最了解,我说贪心,结果给了我一道动态规划的题目最长公共子序列。(答题思路记得,但具体忘了,我简历上只写了了解,我是真的想不起来了)
14、现在想想面试官应该是向给我过,然后无可奈何的给了我一到简单的题目,给定一个数组,求里面连续数据的最大值。(在面试官的提示中写出了代码)
最后肯定就是你有没有什么想问我的了,肯定是问我还有没有什么需要改进的地方。
前面的自我介绍和基本问题用了大概四十几分钟,加上算法题总共大概一个小时十六分钟。面试官说因为我前面的问题表现比较好,所以算法题难度也比较高,,,没想到我不会。。。
以为会挂,但是没想到二十分钟左右就收到了二面的电话。
二面
常规自我介绍:姓名、学校专业、学校表现(也就是奖项、荣誉)、项目介绍。
听了项目以后开始问我项目相关的问题
之后就是常规问题
1、有没有用过awk命令
2、了解ping命令吗,返回值是什么?(返回值不清楚)
3、问我了解堆栈吗?(回答了一下用malloc和new在堆上申请内存,局部变量保存在栈上)
4、然后问我栈上为什么不需要进行手动资源释放(我讲了一下函数调用时会开栈、函数结束时,作用域结束,会退栈,所以不需要进行释放)
6、问我使用map吗(我说没有,不太了解)
7、问我常见容器有哪些?(大概说了几个,是在记不清楚了,用的少)
8、问vector应该是有限定长度的,但是却没有显示出来,它内部是怎么实现的,就是扩容机制。(讲了一下先用malloc开辟一个二倍长度大小的数组,然后再将原来数组上的数复制上去,再把原来的数组释放掉。
9、问我了解extern吗,知道底层实现吗(我只说了功能,对底层不清楚)
10、问我一个udp server和一个tcp server能不能同时共用一个端口(我就说了我觉得不能,同一个时间同一个端口只能被一个服务使用,不知道对不对,面试官也没再说)
11、有一个不均匀的硬币,正面的概率是0.7,反面的概率是0.3,问通过抛硬币来决定两个人谁能喝水,怎么才能公平。(没想出来,简直就是乱说。。然后在面试官的提醒下一步一步做出了答案。扔两次,出现一正一反和一反一正的概率是相同的)
12、给定一个整型数组,求里面最小的间隔数。如{8,4,2,5,6,9,12},最小间隔数为3;因为最小数为2,没有3。(一开始想的是给定一个足够长的数组初始化为0,遍历一遍原始数组把新建数组对应下标加1,然后再遍历一遍新建数组,第一个为0数对应的下标就是最小间隔数。但是没说出来数组长度,面试官说可以先遍历一遍求出最大值和最小值的差,就是数组的长度。之后自己就不会做了,之后面试官说可以新建一个和原数组一样长的数组,然后遍历一遍原数组,找到最小值,在遍历一遍,讲所有值都减去最小值后在新数组对应下标位置加1,超出数组长度的值不需要处理,一定在数组长度内。 说实话这个思路问了面试官好久才明白。)
最后肯定就是你有没有什么想问我的了,肯定是问我还有没有什么需要改进的地方。
然后就没有然后了,可能我太菜了,面试官不想再问了,才36分钟就结束了二面。
基本就是这些问题,顺序可能有问题。
原文链接:https://blog.csdn.net/ifiwere/article/details/104659792