首页 > 字节C++后端一面(50min)
头像
疾风少年
编辑于 2021-04-06 19:04
+ 关注

字节C++后端一面(50min)

上来先自我介绍,介绍完直接开始算法。

算法

1. 两个链表的第一个公共节点(剑指offer 52,lc上)
我说用hash表存一遍链表,第二个链表找到了就是第一个公共节点。
面试官要求优化,空间复杂度O(1),想了半天说那就A链表移动一个,B链表移动一遍判断是不是同一个(大脑一片空白)

2. 二叉搜索树的第k小节点 (剑指offer 54,lc上,大换成小)
说一个递归中序遍历就ok,如果迭代的话就压一个栈存父节点。

3.  无重复字符串的最长字串(lc 3)
说了滑动窗口,让优化没有想到。

以上三题口述,第三题实现一下。
上述过程大概十五分钟,实现代码大概五六分钟。

C++

1. 虚函数的实现原理?
2. 虚函数表和虚函数指针分别属于类还是对象?
3. C/C++的编译过程,分为几步?
4. 预处理做了哪些工作?

操作系统

1. 进程和线程的区别?
2. 进程切换为什么比线程切换代价高,高在哪?
3. 进程通信和线程通信有哪些?
4. 多线程存在的问题是什么?
5. 知道哪些锁?
6. 你刚才提到乐观锁,乐观锁是锁吗?
7. 刚才提到管道通信,管道有哪几类?
8. 虚拟内存和物理内存的区别?
9. 虚拟内存,进程是如何映射到物理内存的?
10. malloc申请一块内存会不会立刻绑定到物理内存?(我不清楚,我说应该会吧,不是特别了解)
11. 页面置换算法有哪些?
12. LRU和LFU的区别?
13. LRU和LFU如何实现?
(回答了使用队列和hash表,面试官问我查找的时候如何复杂度还是O(1),
想了一会说,其实是链表实现的队列,直接找到该值进行删除和插入,想的时间有点久)

网络

1. TCP和UDP的区别?
2. TCP为什么数据量比UDP大? 如果有1M数据,两者会差多少?
3. 流量控制和拥塞控制的区别?

数据库

1. 根据经验的话,哪些情况下需要建立索引?
2. 数据库的搜索引擎有哪些?
3. Innodb和MyISAM的区别是什么?
4. B-树和B+树的区别是什么?
(我说了B+树会比B-树的存储空间小,面试官问我不应该是一样的吗,为什么会少…… 说了半天没答到点子上,说掌握的不好下去再看看)

总结

最后就直接结束了,也没有反问环节,也没有二面,可能凉了吧……
更新,已约二面。

更多模拟面试

全部评论

(8) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐