字节财经 三面 手撕居然出了hard

面试公司:字节跳动
面试岗位:后台开发
面试问题:
1. 自我介绍

2. 挑个项目讲讲,又祭出了祖传的RAG(主要怕说java玩具项目对方没兴趣,后来发现我想多了,三面的面试官至少也是架构师级别,啥项目在人家眼里都是玩具

3. 具体是怎么做的?整个RAG链路是什么?

4. 向量化怎么做的?为什么能把文本映射成向量?底层原理是什么?

5. 用的什么向量数据库?(答Milvus)追问:Milvus和常规的关系型数据库有什么区别?为什么用Milvus?

6. 为什么不用Elasticsearch?(太偏向于文本匹配,对语义的感知能力不够)

7. 你在项目中遇到的最大的挑战?技术难点?(说了关键词增强的多路召回,面试官很失望,说我觉得这也不是啥技术难点啊,汗流浃背了

8. 来做一道题吧(此时距离面试开始才过去22分钟,但是题目出来的一瞬间我就知道为啥这么早就开始做题了

题目:删除无效的括号(hard)

早就听闻这道题很复杂,好在之前在利特蔻德上喵过一眼,于是直接献出了我的自创方法:预检索+剪枝回溯+后处理+后验证(后来发现这个思路其实和官解方法三大体差不多2333)

还是先说大致思路,然后写代码。不得不说是真的复杂,前前后后大概写了100行左右,自己测了一下没啥问题,最后对着代码和面试官讲了具体思路。整个过程大概40分钟。

反问:
对实习生的要求?具体看重的方面?(回答技术基础+对新事物的求索心)

总结:三战字节,每次面试官的风格都不一样。但是也存在一些共性:比如主要围绕着项目拷打(如果有实习的话应该也会猛猛问实习),常规八股较少(就一面问了两三个),以及非常重视对算法题的考察,而且难度都是mid起步,很少出easy

许愿OC

#软件开发笔面经#

-----------
更新:当天晚上hr来电话,说正在走offer审批,加了微信
全部评论
手撕hard已经过了
12 回复 分享
发布于 03-06 17:08 上海
!这个手撕是我上次二面挂掉的
5 回复 分享
发布于 03-06 21:29 北京
我的吗,100行我都不敢想象
3 回复 分享
发布于 03-07 10:40 上海
一面hard就给我挂了
2 回复 分享
发布于 03-07 17:16 上海
给南大✌🏻👻了
1 回复 分享
发布于 03-07 18:32 广东
我也是三面遇到了这个题
1 回复 分享
发布于 03-07 16:18 新加坡
神中神!
1 回复 分享
发布于 03-07 14:09 湖北
太牛了,速通字节
1 回复 分享
发布于 03-06 22:24 陕西
大佬好强,我hr说还在内部审批,是不是还没有offer呀
点赞 回复 分享
发布于 03-06 22:16 北京
第一次面试就是字节,一面刚开始就开始手撕,上来就是hard给我整懵了
1 回复 分享
发布于 03-06 21:21 安徽
太强了
1 回复 分享
发布于 03-06 19:36 广东
姐姐,我是你妹妹艾莉,请你把offer转让给我,不然我要用俄语怼你了
1 回复 分享
发布于 03-06 18:46 北京
稳的,鼠鼠还在碰壁(哭
1 回复 分享
发布于 03-06 18:11 江苏
许愿OC
1 回复 分享
发布于 03-06 17:31 广东
佬好强祝oc
1 回复 分享
发布于 03-06 16:19 辽宁
太🐮了
1 回复 分享
发布于 03-06 16:13 北京
实习会怎么拷打呢
点赞 回复 分享
发布于 04-13 20:58 河南
mark删除括号hard
点赞 回复 分享
发布于 04-07 09:33 浙江
👍👍
点赞 回复 分享
发布于 04-01 23:53 陕西
mark删除括号hard
点赞 回复 分享
发布于 03-29 00:21 甘肃

相关推荐

03-17 16:06
已编辑
算法工程师
Eikoo:1. text可以做索引吗? 做前缀索引,要指定前缀长度 2. text和varchar的区别 varchar用于存储可变长度的字符串,最大字符长度为65532(ascii) Text:用于存储大文本数据,不需要指定最大长度。不过TEXT类型的字段不能有默认值,不能完全放入内存,可能需要使用磁盘临时表。 3. varchar可以多大 除了一个存储变长字段和一个null字段的 占用3字节 剩下65532 根据单个字符长度决定有多大 4. top的cpu load是怎么计算的 在Linux的top命令中,CPU load是通过/proc/loadavg文件获取的,表示系统在过去1分钟、5分钟和15分钟内的平均运行队列长度(等待CPU处理的进程数)。具体计算: 如果load average值为0,表示没有进程在等待CPU时间 如果值等于CPU核心数,表示CPU刚好满负荷 如果值大于CPU核心数,表示系统超负荷,有进程在等待CPU时间 5. 拥塞控制 拥塞控制是TCP协议中的一个重要机制,用于防止网络过载。主要包含四个算法: 慢启动:连接开始时,拥塞窗口(cwnd)设为1个MSS,每收到一个ACK,cwnd加1,呈指数增长 拥塞避免:当cwnd达到慢启动阈值(ssthresh)后,每个RTT只将cwnd加1,呈线性增长 快速重传:如果发送方连续收到3个重复ACK,立即重传丢失的数据包,不等待超时 快速恢复:在快速重传后,设置新的ssthresh为当前cwnd的一半,然后将cwnd设为新的ssthresh加3 6. zset的skiplist高度设置 在Redis的zset(有序集合)实现中,skiplist(跳跃表)的高度(level)设置如下: Redis的skiplist最大高度为32层,每个新节点的高度是随机生成的,插入新节点起始高度为1,然后进行随机测试,每次有25%的概率增加1层,直到达到32或者随机测试失败 ,这种随机性保证了良好的平衡,使得查询、插入、删除操作的平均时间复杂度为O(log n) 7. Linux查看线程状态的命令 * ps -eLf显示所有线程信息,每个线程一行 * top -H显示每个线程的CPU使用情况 * ps -T -p <PID>显示特定进程的所有线程 * htop交互式的进程/线程查看器,比top更直观
查看8道真题和解析
点赞 评论 收藏
分享
评论
98
143
分享

创作者周榜

更多
牛客网
牛客企业服务