日常分析大厂面经-快手暑期实习

大家好,我是花海,B站技术专家,平时会在牛客分享一些面试复盘和技术思考。如果你在准备面试、修改简历,或者对职业规划有疑问,可以找我免费帮你看看简历、聊聊思路。目的是帮大家少走点弯路,今天我们来继续看面经。

一、快手一面(3.24)

1. 算法:LRU

LRU 在面试中属于高频题,写出来是基本要求。实际工作中,LRU 的思想在缓存淘汰、页面置换、数据库缓冲池都有广泛应用。

写的时候注意:

用 HashMap + 双向链表 实现 O(1) 存取封装 moveToHead、removeNode 等方法,保持代码清晰注意线程安全性(如果是系统设计题可以提一嘴,但手写代码一般不考虑)

2. 拷打实习和项目

这里不是泛泛而问,面试官会找项目里你最有挑战、最能体现你设计能力的点深挖。建议提前准备:

项目背景、你的角色、解决了什么痛点技术选型的原因(比如为什么用 Kafka 而不是 RocketMQ)遇到的最大难点和如何解决的(最好有数据和效果佐证)

3. Redis的数据结构介绍一下

不要只背五大数据类型,可以按层次讲:

外层数据类型:String、List、Hash、Set、ZSet底层实现:SDS、双向链表/压缩列表、哈希表、跳表等每种结构的适用场景和特点(比如 ZSet 用跳表+哈希表实现,支持范围查询和单点查找)

二、快手二面(3.31)

1. 算法:反转二叉树

可以主动说清楚递归和迭代两种写法,以及它们的时空复杂度。

2. 实习相关(比如POI表内存了哪些字段)

这类问题考察业务抽象能力和数据敏感度。回答时按类别组织:

基础信息:名称、地址、类型、经纬度

业务属性:评分、人均消费、标签

动态信息:实时销量、是否营业、距离(计算字段)

如果是电商POI,还可能关联商品、库存等

好了,今天的面经就拆解到这里。大家还想看我拆解哪家公司、哪个方向的面经? 可以评论区告诉我。

我是花海,专注于帮你避开面试路上的那些“坑”。简历修改、面试准备有疑问,随时交流。我们下期见!

#实习简历求拷打#
全部评论

相关推荐

头像
04-20 22:26
南京大学 Java
攒人品ing~(一天三面我燃尽了)个人背景介绍一、 项目深挖:高并发博客系统架构面试官提问:你的并发控制和API限流是怎么做的?面试官追问:点赞的接口限流具体怎么实现的?面试官追问:数据最终怎么落库?MQ消息丢了怎么办?二、 场景题:使用Redis实现QPS/QPM/QPD限流面试官提问:如果要用Redis限制一个接口在滚动窗口下的QPS、QPM、QPD,怎么做?第一版思路:将时间单位拼接到Redis Key中。面试官指出:这会导致Key数量爆炸式增长。第二版思路:使用Hash结构,记录用户在特定时间窗口内的访问次数。面试官指出:这种方式只能记录自然时间(如自然天、自然秒),无法满足滑动窗口的需求。第三版思路:使用ZSet实现滑动窗口,Score设为时间戳,Value设为唯一标识。每次请求进来先移除时间窗口之前的数据,再使用 `ZCARD` 统计当前元素个数来判断是否限流。面试官指出:在QPD(每天调用量)极大且高频的场景下,ZSet会导致元素过多,产生大Key问题。第四版思路(最终被认可):针对精度要求没那么高的QPM/QPD,采用“分桶计数”思想。将一天24小时分为1440个分钟桶,使用String存计数值。每次判断时只需将最近时间段内的桶数据相加即可,旧桶设置自动过期销毁。表示该方案可行。三、 项目深挖:缓存三大问题解决方案面试官提问:你在项目中提到的“布隆过滤器 + 互斥锁 + 逻辑过期”是怎么协同工作的?四、 手撕算法题目:LeetCode 124. 二叉树中的最大路径和。五、 反问环节问:入职后实习生的主要工作内容是什么?问:团队内部对于AI写代码的认可度如何?问:对我今天面试表现的评价和建议?
查看9道真题和解析
点赞 评论 收藏
分享
评论
4
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务