拼多多-暑期实习二面

面试时间:2025-3-18 15:00

面试官很帅,但是感觉熬夜有点严重,非常温和的面试体验。

1. 讲一讲你自己这个项目里,自己觉得比较做的比较有挑战性的
2. 异步任务的异步体现在哪里呢?管理这些任务用到了哪些比较核心的技术?
3. 为什么是任务执行器主动拉取,而不是服务器主动推送?
4. 主动拉取的话,那我需要一直轮询一直拉吗?
5. 任务多的时候,任务执行器的实例多OK。现在任务少下来了,很多执行器实例处于空转状态,你们怎么去做这样的管理?(意思是弹性扩容/缩容)是只能人工去干预吗?
6. 表结构怎么设计的?
7. 任务执行器是单机的,还是可以分布式部署的?
8. 任务积压问题怎么处理?
9. 项目里面或者你平时自己有没有用到一些多线程交互?有没有做过线程同步的一些事情?我比较关心你有没有过多线程编程的实际经历,这块你一般怎么处理?(吟唱一下)
10. 你刚才也提到了JMM内存模型,那你怎么理解他为什么会有这样一个私有内存?就是从计算机体系结构层面来讲。(对应多级缓存,屏蔽不同系统硬件底层细节,私有内存不只是指内存,同样还包含寄存器、L1\L2等部分,是一个抽象概念)
11. 手撕:
给定二叉树的前序和中序序列,如果序列中有重复元素,请给出可以恢复出的有效二叉树的种数。
例如 前序['A', 'A', 'A']、中序['A', 'A', 'A'],为5种。
思路:如果没有重复,就是递归嘛,根据前序划分中序为左右子树,每个子树分别递归。现在有重复,就需要在当前层找到所有和前序划分元素相等的元素,分别划分,多次递归。当前节点树种类为左右子树乘积。
追问1:如何优化?(冷汗直冒)==》cache
追问2:还能如何优化?(汗流浃背)==》用哈希取代单层遍历、左子树不合法时,右子树无需递归
面试官在手撕过程之中反复给出提示引导,万分感激!
全部评论
左子树为什么会不合法呀
点赞 回复 分享
发布于 03-30 10:01 江苏
第五个咋回答的呀 多个worker闲置 咋处理
点赞 回复 分享
发布于 03-28 15:23 北京

相关推荐

拼多多 暑期实习 二面,总共用时1h 左右, 被面试官疯狂拷打, 估计凉凉。首先介绍项目, 对方完全不感兴趣: 你做的这些和后端开发有什么关系?我简单介绍了下后端相关的,面试官可能觉得太简单了,没有继续问。然后就是痛苦的手撕拷打,持续50mins 左右。问题1: 给你两个班级, 每个班级共有 k 个人,你是班主任,要从每个班级中挑出1个人,使得他们的身高差最小。回答: 先排序, 然后遍历A班级,二分查找B班级中的第一个大于等于(lower_bound)A班级里的那个 的位置,然后比较那个位置和前一个位置。面试官和我不太同频,问我为什么要找第一个大于等于?二分查找不就是找一个位置吗? 面试官笑眯眯的问我是第一次接触二分搜索吗?然后计算时间复杂度。感觉完全不同频。问还有更优解法吗?回答双指针,还是固定遍历A, 然后另一个指针从B开始找比A大的,然后在和前一个也比较,取最小的。这样就是O(n).面试官提示一下,不要局限在当前这个和前一个比较,换种思路。 然后我一直在思考,对方问我双指针要怎么初始化?  因为我还没想好,就没回答。面试官: 双指针要怎么初始化?这你都不懂吗。。。? 怎么不回答我。我说新思路还没想好,面试官表示刚才那种思路的双指针要怎么初始化? 答:都初始化在第一个位置。问题2: 两个班级, 换成 N 个班级, 每个班级选1个人, 要求算出来的人里的 max - min 最小。答没思路, 面试官提示下多个指针? 考虑下指针应该如何移动。我想了想,移动最小的那个指针,直到所有指针都走到末尾,每次移动,从这个N个人里面取最大的,最小的,比较。然后算时间复杂度:n个班,每个班k个人,  我想整体的数据规模是 N = n*k , 然后我用 N 去后续表示。面试官:你为什要定义新的符号N? 算完时间复杂度,问我“从这个N个人里面取最大的,最小的”这部分可以优化吗? 我回答可以使用 map (cpp里的),面试官表示你直接说数据结构,不要说语言中的名字。问这个的时间复杂度,答logn面试官:那你开始写吧。写了大概 3 分钟。 他看了眼。问题3: ping 100ms  , curl http://1.2.3.4:8080/hello  需要多少时间?这里我考虑了4次挥手, 面试官:需要考虑这个吗?答 200ms. 问题4: 直播间,打赏金额最高的100个用户? 你应该如何实现维护?我回答使用 redis 的 zset ,  可以高效的获取top 100.面试官问:这样有什么问题吗? 如果用户特别多的情况。我想了一会,也没想出什么问题,回答没什么思路。面试官:用户太多了会有 大 key 问题, zset 删除的时候会阻塞几秒。 (我不太理解)面试官:你应该考虑怎么优化?答: string 配合 zset 使用, string kv 中存 user, money,  而 zset 中只维护 top 100 的。同时更新这俩。最后, 反问部门业务:拼多多直播带货。技术栈: 面试官看我的简历里面,cpp 太底层了我们这边不用,golang 也不用,主要是 java , 然后 redis, mysql, kafka这些。面试官问我懂不懂二分, 我当时多少有点生气💢, 不过总的来说面试官人还不错,还算友善,给了很多引导。
查看13道真题和解析 牛客创作赏金赛
点赞 评论 收藏
分享
评论
4
23
分享

创作者周榜

更多
牛客网
牛客企业服务