26.3.31 小红书AI全栈(社区工程)一面

一、自我介绍 / 经历亮点 / 岗位理解
1.你先简单介绍一下你最近的经历,挑项目或实习里你觉得比较有亮点的讲一下。
2.你们端智能这块的特征工程,主要是做什么的?
3.你们这个项目本身负责采集吗,还是主要做中间处理?
4.整个系统设计上大概是怎么分层的?
5.业务方怎么定义和注册他们需要的特征?
________________________________________
二、设备特征缓存优化
7.设备特征缓存优化这个需求,是 mentor 提给你的,还是你自己发现的?
8.你当时接到这个任务后,是怎么思考和解决这个问题的?
9.这个问题为什么会在高并发场景下耗时,它的根本背景是什么?
10.你为什么会想到用缓存来解决?
11.设备特征是会变化的,那你们怎么处理这个变化?
12.为什么要分成 2 秒、10 秒、90 秒这几档?
13.网络状态这种高频变化的特征,为什么是两秒?
14.如果某些业务对实时性要求极高,比如 0.5 秒级别,你这套缓存怎么适配?
15.如果同一个特征在不同业务、不同页面下要求不一样,你怎么设计整套特征供给和消费体系?
16.如果不同业务场景对同一特征的刷新频率要求不同,你真正采集和计算时怎么定间隔?
17.只要有人要求最短间隔,是不是整个系统都得按最短间隔跑?
18.你觉得这个体系怎么设计,才能满足这种差异化需求?
________________________________________
三、特征计算触发 / 业务隔离 / 平台治理
19.你们怎么限制特征计算不要无限制执行?
20.如果一个事件可能触发很多脚本同时运行,你怎么管控?
21.如果要限制并发执行任务数,那这些任务怎么选、谁优先?
22.如果不同业务都说自己的任务重要,你作为平台怎么治理?
23.这个治理过程以前可能靠人 review,那现在这个时代,你觉得还需要人一个个看吗?
24.如果想用 AI 去替代人工 review 算法包,你觉得应该怎么做?
25.如果让 AI 判断什么是合理、什么是不合理,你觉得提示词 / 规则里应该包含哪些信息?
26.哪些特征或脚本应该被重点审查?高频的、复杂的、还是孤立的?为什么?
________________________________________
四、端上开发经验 / AI 在开发中的使用
27.你在项目里面主要做的是 C++,对吧?
28.除了 C++ 性能优化,你平时接的小需求是否也会涉及 iOS 和安卓两端?
29.你们整个开发过程中会用 AI 吗?
30.当时你们主要用哪些 AI 编码工具?
31.你平时会用国产模型吗?
________________________________________
五、编程题:带 TTL 的 LRU Cache(允许 AI 辅助)
### 题目要求
实现一个线程安全的 **LRU + TTL** 本地缓存,请使用 Java 实现一个本地缓存类。

### 代码框架
```java
public class LocalCache<K, V> {
    public LocalCache(int capacity) { }
    public void put(K key, V value, long ttlMillis) { }
    public V get(K key) { }
    public int size() { }
}
```

### 功能要求
缓存有最大容量 `capacity`;
每个 key 支持 TTL(过期时间);
get 时如果 key 已过期,返回 `null` 并删除;
插入新 key 时缓存已满:
- 先清理已过期元素;
- 若仍满,则淘汰最近最少使用(LRU)的元素;
如果 key 已存在,更新 value、过期时间,并刷新其 LRU 状态;
需要保证线程安全;

说明实现的时间复杂度,并说明如何避免因重复 put 导致过期堆中的旧记录误删新值。

32.你先看一下这个题,先不用急着让 AI 出答案,你觉得它给出的方案方向有问题吗?
33.它这里为什么要引入 version?
34.version 是怎么避免旧数据误删新数据的?
35.为什么这里要用小顶堆?
36.小顶堆在这个设计里的作用是什么?
37.如果堆里一共有 N 个元素,其中 K 个过期了,清理这 K 个元素的时间复杂度是多少?
38.如果 K 很大,比如长时间没人请求、结果大量 key 一起过期,这个方案会有什么问题?
39.在这种极端情况下,get / put 还能保持接近 O(1) 吗?
40.如果你现在重新设计这个方案,你会怎么做?
41.如果不用 AI,你最基础的思路是什么?
42.纯 hash map + 双向链表 能不能先把 LRU 做出来?
43.如果只在 value 里记录过期时间,会有什么局#牛客AI配图神器#限?
44.为什么说一旦加了小顶堆,就会把一致性和复杂度问题带进来?
全部评论

相关推荐

04-28 15:42
郑州大学 C++
kozam:谁家好人提前半小时约面啊。。。
点赞 评论 收藏
分享
timeline二月1.&nbsp;腾讯云架构&nbsp;&nbsp;二面挂2.&nbsp;字节云&nbsp;&nbsp;二面过&nbsp;后续转部门三月3.&nbsp;字节广告&nbsp;&nbsp;面了两次,不知道是一二面还是两部门一面4.&nbsp;腾讯pcg&nbsp;&nbsp;二面挂5.&nbsp;minimax&nbsp;aiinfra&nbsp;一面面试官聊的很好,但技术栈不匹配(分布式共识和k8s)6.&nbsp;百度&nbsp;分布式计算&nbsp;一面挂四月7.&nbsp;腾讯&nbsp;QQ浏览器ima&nbsp;&nbsp;上午通知二面过&nbsp;下午秒挂8.&nbsp;滴滴&nbsp;云平台&nbsp;二面后泡池子9.&nbsp;快手&nbsp;可视化&nbsp;一面挂10.&nbsp;普联&nbsp;&nbsp;一面后没通知11.&nbsp;&nbsp;蚂蚁&nbsp;&nbsp;Agent基础设施&nbsp;二面后换部门三面&nbsp;4.28oc&nbsp;已体检等节后通知个人体验首先说一下就是我的技术、之前的bg和一些基本功非常一般,所以说最后拿到蚂蚁offer的话其实运气成分占很大一部分,当时接的时候也是和面试官已经hr说的不保研+只要发意向毕接然后一周内入职,所以感觉也挺顺利的。下面就是我自己对于各个公司的考察侧重、各个时间段的一些体验以及对于暑期实习的理解。(ps&nbsp;&nbsp;个人感受其实都挺好的)我个人体感的话,刚开始的一个月,进二面或者横向是比较容易的,当时鹅厂和字节基本上如果比较match的话(我可能投的是云业务相关的消防方向),面试感觉是很不错的;但是横向的时候就感觉有很多人,这些大佬在面试以及bg上都很优秀,所以相对来说横向挂是普遍一点的。然后四月份其实大家都开了,这个时候我感觉面试挂的会比较多一些;当然,还有笔试,我笔试就过了一家,算法题实在太烂了(这部分如果将来准备暑期实习的uu真的可以提前来练)。然后公司的话,字节和鹅厂感觉面试和部门关系很大,如果遇到和自己垂类匹配到部门、加上竞争不大的话体感是很不错的。字节真的不要去海投别的业务,我投的搜广推,感觉他们对于redis这些都使用真的有点出神入化的意思。然后直观感受是鹅厂偏技术而且普遍涉及AI,字节对于业务深度的挖掘很厉害,能学到很多东西,不愧是宇宙厂。然后minimax的面试感觉真的很棒,像聊天一样,不过他们对于技术的匹配度可能会要求高一点;滴滴属于车轮面,体感不错,但是泡池子可能就一些;百度的话也是有点偏向于技术匹配度,个人感觉也还不错;快手的话技术和相关知识要求有点高,是我遇到强度很大的公司,仅次于字节;普联hc有点少了,不过面试问的不是很深,业务知识都问了;然后蚂蚁的面试官问的问题很发散,有一些考察个人知识广度和思考的意思在里面,很有意思。笔试的话多多很难、b站和团子还可以、携程记不清了感觉也有点难,然后鹰角、网易和米哈游这些如果不是游戏开发(比如我是写go的)投这个岗位的话基本上笔试完流程就结束了,不清楚是bg的原因还是单纯我太菜了。然后心态上,感觉有一些offer打扑克,也有像我这种一直挂的。个人感觉就是想去哪里再投哪里,适当保底就可以了,然后心态放松,每场面试不管体感如何都好好准备,这样方式是我觉得比较好的。经验教训就是大家算法题可以早做一些,祝大家都有理想的offer。
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

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