XX提前批一面凉经

提前批校招一面百度,总结:

大致流程就是:先自我介绍,讲了一些项目的事情,然后以一些项目为切入点,问了几个问题,回答的不全面,有的甚至回答不上来。。。

1、缓存(Cache)与缓冲(buffer)的区别:
Cache:是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
buffer:是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

回答的不全面,只考虑到了解决速度不匹配的问题,别的特性没想到。。。

2、TCP与UDP的区别,中间加问如果TCP通讯过程中出现了异常如何处理?

3、线程安全(确实太菜,不知道。。。)
从操作系统的角度只回答了一个线程锁。。。

4、C++里面的STL有哪些容器?底层实现是什么?常用的操作有哪些?操作的时候有哪些要注意的地方?这些操作对应的时间复杂度如何?STL是不是线程安全的?
分为两大类:关联型容器和序列型容器:
vector:巴拉巴拉
deque:。。。
stack:。。
queue:。。。
set:。。。
map:。。。
multiset:。。。
multimap:。。。。
多个读取者来说是线程安全的,对不同容器的多个写入者是线程安全的。

回答的不全面,中间即使被引导了好几次都没有完全get到面试官小姐姐的点。。。

还有一些其他问题,记性不太好,记不住了。。。

最后是一个手撕代码环节,求解一棵二叉树存在的在任意两个结点之间的最长路径:
思路:递归的方式,比较三种情况取最大值:max{左子树存在的最长路径,右子树存在的最长路径,左右+1}
没写出来,😥😥😥,总时长应该是60min,结果面了刚好120min。。。
自己太菜,被引导都找不到正确的思路,尤其是手撕代码环节。。。

总结:
1、实事求是,会就是会,不会就是不会,不然你接不住面试官后面的问题;
2、敲代码之前,一定要搞清楚面试官的问题,或者说搞清楚代码需求,然后把思路理清,不然答非所问就很尴尬;
3、先挂为敬
#面经##校招##百度##C++工程师#
全部评论
字节电商提前批安利:https://www.nowcoder.com/discuss/680304
点赞 回复 分享
发布于 2021-07-20 13:59
点赞 回复 分享
发布于 2021-07-21 16:56
楼主的题有点难呀
点赞 回复 分享
发布于 2021-07-30 11:34

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
评论
3
28
分享
牛客网
牛客企业服务