4.8 腾讯 TEG 云架构后端实习,一面秒寄

BG:九本,科学院硕

自我介绍,介绍项目,项目是打 OS 功能赛做的,我对项目细节非常熟悉,面试官的提问都在意料之中(全都防出去了)。
然后说部门是做分布式存储的,考虑换方向吗?
然后开始坐牢
1. 智力题,找出超大文件中的出现次数最多的字符串,文件 10 T,单个字符串最大 2 G,给定 64 G 的内存
    答:对每个字符串 hash 再计数  回:字符串种类特别多,内存放不下
    答:外部排序?但是具体怎么实现忘了
    后面发现是个常见的场景题,参考这两种解法:https://zhuanlan.zhihu.com/p/496869606
    然后,面试官试图把我拽回第一种解法,提示通过哈希把大文件拆成小文件,还是答不出,寄了。
2.  问操作系统
    平时了解 OS 看什么书?《深入理解 Linux 内核》《linux/unix系统编程手册》。
    经常看源码吗?看得不是很多,就打比赛的时候针对性地看了调度相关的
    最了解 OS 哪几个模块? 调度和内存。
    常见的锁?只了解自旋锁、互斥锁、信号量的实现。
    实现读写锁。不会,寄了
    问缺页置换算法?就说了一个 CLOCK(到这里已经神志不清了,我当时觉得我答得太简单了,以为要 Linux 高版本正在使用的算法),后面问 OPT 为什么实现不了,因为要知道将来的访存信息

最后手撕,感觉是 hard

给一个整数 n (1到 10^9),给定两种操作:1)乘以任意一个整数  2)开方,结果必须是整数 ,要求通过以上两种操作得到最小的数所需要的最少操作的次数

例如:
输入: 20
输出:3 (20 X 5 再开方得到10)

然后限定只能用 C 

我的思路是分解 n 为质因数之积,统计各个质因数出现的次数,取出现次数最大的质因数,把它变成偶数(最多只乘一次),然后不停地开方(如果开方是奇数,再+1变成偶数)

然后在做的时候被吐槽了:
1)我直接开了一个数组存计数(没法用标准库 hash 表计数),我也知道会爆内存,就象征性地开了个数组,打算整个写完再改改,然后在写的过程中就被吐槽了。
2)筛选质数的算法(https://oi-wiki.org/math/number-theory/sieve/)太久没用忘了,面试官说暴力筛会超时

最后时间有限没写完,说一下思路,面试官承认思路很接近了,找到出现次数最大的质数,大概求 log(n) 就行了。

其他:本科成绩,数据结构课程成绩,什么方面需要提升?打磨自己的优势,打好基础

当晚面完(1#牛客AI配图神器# 个多小时),晚上流程结束

总结:死于八股和算法,面试官看重数据结构和算法,然后过程中给他的印象是这方面还不够扎实[笑cry[牛泪]

update: 吐槽
1)说我做不出来智力题说明不了解文件系统,这玩意和文件系统有很大关吗?就套皮八股/算法
2)我说质因数计数没标准库哈希表做不了,面试官甩出用两个数组计数:
  int part[]
  int count[]

  part[k] = i(i 是质因数)
  count[k++] += 1
称不能用标准库,有点搞人
全部评论
对象存储那个组嘛
点赞 回复 分享
发布于 2025-04-15 17:09 北京
和我经历好像,我也是打OS功能赛,内核这边也是内存和调度子系统了解多一些,面的部门都是一个
点赞 回复 分享
发布于 2025-04-17 12:06 陕西

相关推荐

04-24 16:42
已编辑
南京林业大学 后端工程师
发面经攒人品前几天面的,一直卡审核发不出来,今天重发太难了,被疯狂拷打1. 自我介绍2. 实习干了什么3. 实习的时候怎么修复bug的4. 实习的时候数据库、redis用的集群吗?5. 你觉得微信推送功能是怎么做的?是依赖于每个手机厂商提供的push服务吗?还是说每个app只接受其服务端的push?(完全不会)6. 实习的时候,你怎么写代码那,有没有开发机,怎么测试?怎么发布?日志怎么看?7. agent项目的向量数据库用的什么?你了解这个向量数据库内部怎么存储的吗?你怎么部署的这个向量数据库?(底层原理不知道)8. 你有没有自己开发过mcp?(没有)9. react模式是什么?10. 你这个agent做完后最后是一个什么形式?11. 你是用了spring ai alibab里面封装好的吗?是不是就调用了几个接口?12. rag切片怎么做?13. 有没有测试过准确率和召回率?(没做)14. 你主要是java吗?有没有用过其他语言?15. 讲一下synchronize关键字16. synchronize关键字锁的到底是什么?17. 讲一下synchronize的底层原理18. 你知道锁监视器对象是怎么用的吗?线程怎么抢锁?19. 有很多线程,他们怎么抢这个锁,能不能讲一下具体过程?20. 堆怎么管理?怎么回收垃圾?21. 你了解协程吗?(不知道)22. 讲一下输入qq.com到最后显示页面的过程23. HTTPS握手具体怎么做?24. (从这里开始抽象起来了,面试官一直问我ECDHE的会话密钥怎么计算,私钥怎么计算,怎么交换公钥,我完全不知道,之前背的小林coding,我感觉他好像认为小林coding上的是错的,然后一直追问,我压根听不懂他问的到底是什么意思)25. 客户端和服务器要交换公钥,这些公钥要用来干什么?26. 这个会话密钥到底是怎么协商的?讲一下具体过程27. 客户端和服务器交换的到底是什么?28.  此处省略一堆,全是问这个怎么公钥生成的,怎么交换,为什么这样能行,怎么计算会话密钥的,我完全听不懂面试官想问什么29. 讲一下大模型的工作原理(到这里已经彻底绷不住了,我明明投的是后台开发啊)30. 你不觉得这很神奇吗?他为什么根据上下文就能回答?反问:1. ECDHE那里到底是什么?- 你混淆了很多概念,比如随机数、私钥、公钥。随机数不能用来直接做私钥,你去问一下gpt。(但是小林coding上说那个随机数就是私钥)2. 到底是做什么业务的- 做存储和下发。数据要处理后再存储,然后用户访问时下发。最后面试官说了一句“感谢你参加腾讯的面试”。🤡
查看28道真题和解析
点赞 评论 收藏
分享
## 1.自我介绍## 2.实习和项目经历1.项目目的是什么?2.项目双阶段流程是怎么做的?为什么3.如果要实现用户级别隔离的长期记忆该怎么做?>我答得是入库,抽取知识图谱三元组,拼接上下文4.k8s了解的多吗5.平时写代码都怎么进行测试?都有哪些测试方法?重构一个系统如何保证用户的感知不变?> 测试了解的不多,实习的工作有专门的测试,答了下:发灰度,然后回归测试,前后端联调用的apifox之前写好的一些请求集,还有请求重放## 3.平时ai写代码怎么样保证正确性?> spec驱动开发,然后还会让ai写测试1.追问spec怎么写的:> 我用的openspec工具,我认为让aispec最重要的是和ai交流逐步去完善spec的过程,我会在提示词里面专门加上让ai有不确定的东西和我讨论的内容,一般cursor会变成选择题的plan模式,claudecli之类的会停下来和确认2.ai写好的东西怎么验证:> 首先让ai自己写测试验证,给ai一些fewshot构造测试集,先把最基本的测试集合过了,然后我会让ai构建mvp,先保证能跑,然后再在mvp上逐步实现spec里面提到的各种todo,我认为能跑是最基本的要求,如果是前后端系统,跑起来后我会自己手动试一下相关的功能,检查下数据库什么的> (现在想下可能再开始就建立一套验证标准就比较好,比如一些量化指标,让ai去达到)## 4.go相关1.go的goroutine讲一下:> 触发我的八股背诵连招了,协程、gmp、调度、chan通信都背了下,面试官打断说ok我知道你会了2.协程为什么比线程轻量?> 协程是用户态的,切换不需要在内核态和用户态转换,节省了很多资源> (感觉答少了)3.如果让你实现一个协程(不用在意语言,谈思路),你会怎么做?> 1.我认为既然协程是用户态轻量级的线程,最重要的就是调度器了,因为用户自主决定什么时候切换才是真正的自主> 2.其次是清理机制,用完的要及时清理占用,这样可以保证并发性> 3.资源分配系统,每个携程都需要从进程中拿到自己资源,所以资源的高效分配也需要> 这里记不太清怎么答得了,我感觉对协程的理解大部分来自于go的goroutine,我回答的也都是go里面的一些机制,面试官让我自己实现,我大部分都是go的有什么,我答什么吧,也不能全部答成go的,很拧巴)面试官提示:如果有个网络调用进来了要怎么做?> 4.回答中断,要系统级别挂起等待中断,也可以用多路复用机制,比如维护多个socket链接,谁好了通知调度器追问go的io多路复用怎么实现的的知道吗?> 5.我回答我不太了解具体的,我只知道go维护了一个interface,把mac、linux(epoll),和windows的多路复用相关的功能都实现了那个interface,用那个interface来多路复用机制。底层的机制我不清楚,面试官说已经很好了4.用过哪些web框架?你认为web框架和普通的请求处理最大的区别是什么?> 1.我用过gin和python的一些框架,我认为首先web提供了更高性能的路由,相比普通的请求处理,性能更高,其次就是强大的中间件机制追问都用过哪些中间件?> 2.比如鉴权,jwt中间件,限流熔断的中间件,链路追踪中间件追问redis和mysql中间件用过吗?> 3.我回答我写的一般都是微服务框架,web框架一般只做路由,和rpc调用,和数据库接触的部分一般是rpc来实现的(好像redis也是中间件,这里应该说错了)## 5.用过mysql说说索引吧> 回答的聚簇索引和非聚簇索引区别,怎么样建立索引,索引下推,索引失效,索引回表,所以底层b+树,b+树和b树区别## 6.手撕[LCR 059. 数据流中的第 K 大元素](************************************)我忘了python的堆咋定义了哈哈哈,ez题没撕出来,面试官和我都笑了,问了下思路结束了,他说和那边讨论下,如果加面的话考你aicoding## 7. 七点半面试完大概九点半收到挂的邮件
查看18道真题和解析
点赞 评论 收藏
分享
评论
8
19
分享

创作者周榜

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