腾讯 后台开发 凉经
部门:TEG-云架构平台部
timeline:
- 07-06 投递
- 07-23 一面
- 07-25 二面
- 09-11 三面
- 09-12 挂
一面
1h15m,要开双机位
- 自我介绍
- 项目拷打(15m)
- 挑一段实习拷打(10m)
- 手撕:给定哈希函数,使用哈希桶实现一个 KV Cache,小于 4K 的记录使用二级索引
- 讲讲思路
- 了解 DB 存储吗(不了解)
- 反问
- 工作内容:对象存储、块存储、文件存储、KV 存储,具体哪个组进来才知道
- 一个组多少人:二十多个
- 需要有存储背景吗:可以进来再学
二面
1h25m
- 自我介绍
- 上大学前有接触过编程吗
- 面试官介绍面试流程
- 手撕:实现斗地主判牌服务,只考虑炸弹、三带、顺子
- 还有改进的空间吗
- 是哪里人
- 高考成绩
- 考虑读研吗
- 标准库的内存分配函数和操作系统的内存管理有什么联系(顺便介绍了一下 glibc/tcmalloc/jemalloc 的实现)
- 看过源码吗
- 讲讲设计模式的开闭原则
- 怎么设计内存数据的持久化策略,才能保证停机尽量不丢数据
- 反问
- 技术栈:数据面是 C++,控制面是 Go
三面
20m,线下面,面试官是部门主管
- 自我介绍
- 一个数 mod 512,怎么改成位运算
- 一个 30000 个结点的单链表,不能修改链表结点,怎么快速找到第 20000 大的数
- 1TB 文件,文件中的每行不超过 20B,怎么在 1GB 内存中找到文件中出现次数前 10 的行
- 有若干个槽,第一个槽放
i
个球,第二个槽放i*j
个球,第三个槽放i*j*j
个球,后面以此类推,求第 n 个球是第几个槽中的第几个 - 反问
- 具体哪个组:进来二次分配
- 开发多还是维护多:开发多
- 能力要求:扎实的基础,解决问题的能力
- base 地:可以选
第二天收到感谢信,据小道消息是面试官觉得不够精神给挂了