字节一二三面凉经 (暑期
第一次找实习就死在三面, 太难受了, 本来以为可以去快乐赚钱了....
现在想想感觉是三面在网络和计算机体系结构上答得不太行...
3.22 一面 (70 min)
一面的体验真的好(可能由于问的都是我会的...)
自我介绍
项目中的屏蔽词为什么不适用 nlp 而是选择自己手撸字典树
C++ 与 Java 的区别
C++ 虚函数的底层实现原理
说说对 STL 库的理解和实现原理以及思想
算法题
(1) 力扣原题 不过没刷过力扣... 和面试官讨论了一下思路, 在实现的时候卡了一下, 面试官引导了一下, 然后就写完了, 不过好像有 bug 面试官说思路对了, 就过了
(2) 怎么在节省内存的情况下对每一个标记进行存储, 和面试官交流了一下, 刚开始是考虑 hash, 但是 hash 的桶可能会开的很大, 后来想到用 二叉平衡树, 最后选择用 bit 中的某一个位来记录序号, 面试官说这跟 bitmap 差不多, 不过我不太了解 Java 的容器啥的, 就说不太了解
反问: 问了一下部门主要是做什么工作, 由于我投的是 机器学习平台开发, 问了一下如果没有机器学习基础, 会不会给一定时间去学习了解.
三天之后收到了二面通知
3.28 二面 (80 min)
逐渐开始痛苦面具.. 看了好长时间数据库, 结果一句不问, 面完感觉已经寄了, 不过过了 十几分钟就通知三面了
- 自我介绍
- 问我了不了解 HashMap, 我说我不太了解, 不过对于 STL 了解比较深, 看过不少源码也自己实现过一些容器
- STL 中 hash 表实现的 map 是什么 ? 答 unorderedmap.
- 继续问了 hash 表的优缺点, 又问如果hash 冲突过大怎么优化, 这里我答的是转为红黑树.
- 问了问二叉平衡树, 这里
讲(吹)了一波 Treap 和 Splay 的原理 - 可能面试官觉得我可能对 HashMap 还是多少懂点, 但是他问我 STL 中 unorderedmap 中 hash 表怎么转成 map(红黑树).
- 由于上一条我说 STL 没有这种东西, 面试官就问如果让你写, 你会怎么思考, 我就说 hash 冲突到 8 就转红黑树.
- 接上一条, 问我能不能证明或者说明一下为什么是 8, 我说我没事看知乎 HashMap 的时候留的印象(捂脸)
- 让我用 C++ 手写设计 HashMap, 然后我就按 C++ map 的设计写, 期间问了一下为什么这么设计, 最后突然问我 Hash 表的实现呢? 我说我不知道怎么实现,
- 进程的调度
- 进程切换需要做什么
- 还问了问计网, 问的啥忘了, 被问破防了, 不过看结果来说应该是答得还可
- 算法题 矩阵转多叉树, 题目有点复杂, 刚开始面试官给我按列解释样例, 结果就着了列的道, 越写感觉这题解不是一个, 期间一直在向面试官确认这个树是不是唯一性的问题, 最后面试官给我说你按照行考虑, 突然发现只要按字典树的建树方法就可以了... 最后没写完, 不过和面试官交流了思路, 他说让我下去写一下(但是感觉寄)
- 反问:
- 部门技术栈
- 我如果去实习会去哪个部门
面完以为 G 了, 刚想开摆就收到了三面电话, 当时觉得应该可以稳一手了, 结果看其他大犇的面经最近都挂在 3 面, 又不淡定了....
3.31 三面 (40 min)
面试官刚开始迟到了 2 分钟, 我巨慌..
自我介绍
给他介绍一个 ACM 中的算法, 从假设情景开始一步一步到前缀和最后把线段树掏出来了
(凑时间)问了问 C++ 的优化方式(非算法层级). 说了 右值引用和模板根据条件进行代码编译 (竟然把最重要的 inline 忘了, 下来一想直接觉得寄...)
接着问我 C++ 如何在计算机体系结构上进行优化. (当时觉得完了, 这个课还没开始上) 根据经验说了寄存器变量, 然后被追问寄存器啥的, 直接麻了
追问编译器的优化.. 没看过 gcc 咋的底层优化, 最多会用用 O2 优化, 就说不会. 麻 * 2
share_ptr 的优化原理... 只知道实现原理, 开始神志不清胡答, 感觉这里打完, 面试官就没有想问的动力了.. (我麻中麻)
直接让我去实现一个在 len(keys) > 1e9 的情况下的 HashMap. 我 ????? 没完了是吧.期间闭麦关视频, 不知道干嘛去了, 不太舒服...
过了十分钟回来了, 只开麦去跟我讨论 我的实现, 就稍微跟他交流了一下
反问环节: 问了一下部门和实习生的培养方案, 明显感觉很敷衍了第二个问题直接就一笔带过, 等于啥也没说, 当时就觉得没了
果然, 今天收到感谢信....
#字节跳动实习##春招##实习##面经##字节跳动#