美团暑实面经 已offer

一面:
1. SpingBoot的自动装配
2. 多线程了解吗,说一下线程池的核心参数和工作原理
3. 项目相关,大概5-6个问题
4. sql题:student表和score表,找平均分大于85的学生
5. 栈和队列的区别
6. 手撕:用两个栈实现一个队列(说我代码习惯挺好的)
7. B+树了解吗
8. 最左匹配原则是什么
9. Redis分布式锁怎么实现
10. watchdog机制了解吗,用过还是看过
11. 手撕:链表版两数相加 lc2

二面:
1. 分享一个项目中解决问题的思路过程
2. 若干项目问题
3. sql题:scores(id,student_id,course_id, score)查询每门课成绩都在60分以上的同学
4. 根据最左匹配原则判断索引 index i(a,b),8条(其中有一条模糊匹配判断错了)
5. 为什么模糊匹配不走索引?(原理,B+树特点)
6. 为什么要遵循最左匹配原则?
7. 两个sql语句,一个查询条件(ab),一个查询条件(abc),说说区别,在Mysql的执行过程中
8. 给了一个调用sum(a,b) { return a+b; }的代码,从计算机/底层的角度,CPU的角度描述一下如何完成这个函数调用过程
9. 智力题:64枚硬币,每次可以取1,2,3,4枚,不可以不取,取到最后一枚的赢,你怎么保证你会赢(✅)
  1. 如果取到最后一枚的输呢,怎么修改策略(✅)
  2. 如果不允许双方取3枚,怎么修改策略(引导后✅)
10. volatile字段的作用
11. 说一下ClassLoader怎么加载Java程序的,机制(说到双亲委派被打断)
12. 手撕:重排链表 LeetCode143,限制了时间/空间复杂度 O(n)/O(1)

timeline:
投递:3.30
笔试:4.5
一面:4.21
二面:4.23
oc:4.27
offer:4.29
#我的OC时间线#
全部评论
mark
2 回复 分享
发布于 2025-05-02 13:45 广西
cpu角度 有点过于刁难,过不了我直接你手撕一个汇编代码出来我看看
点赞 回复 分享
发布于 2025-06-19 10:23 广东
class Solution: def middleNode(self, head: Optional[ListNode]) -> Optional[ListNode]: slow = fast = head while fast and fast.next: slow = slow.next fast = fast.next.next return slow def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]: pre, cur = None, head while cur: nxt = cur.next cur.next = pre pre = cur cur = nxt return pre def reorderList(self, head: Optional[ListNode]) -> None: mid = self.middleNode(head) head2 = self.reverseList(mid) while head2.next: nxt = head.next nxt2 = head2.next head.next = head2 head2.next = nxt head = nxt head2 = nxt2
点赞 回复 分享
发布于 2025-06-19 10:05 广东
这是经典的博弈论取硬币问题,核心策略就是控制“5的倍数”这个关键点哦~具体操作很简单: 1. 先手第一步:先取4枚硬币,让剩余硬币数变成60(60是5的倍数)。 2. 后续每轮:对手取x枚(1≤x≤4),你就取“5-x”枚。这样每轮结束后,剩余硬币数始终保持是5的倍数。 3. 最后阶段:当剩余5枚硬币时,对手不管取1-4枚中的多少,你都能取走剩下的所有硬币,赢! 比如对手取2枚,你就取3枚;对手取4枚,你就取1枚,始终把总数控制在5的倍数上~这样一步步就能把最后一枚硬币稳稳拿到手啦~
点赞 回复 分享
发布于 2025-06-19 09:31 广东
因为联合索引是按最左列排序的,跳过最左列会导致索引失效,数据库只能全表扫描
点赞 回复 分享
发布于 2025-06-19 09:28 广东
class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def addTwoNumbers(l1: ListNode, l2: ListNode) -> ListNode: dummy = ListNode() curr = dummy carry = 0 while l1 or l2 or carry: sum_val = carry if l1: sum_val += l1.val l1 = l1.next if l2: sum_val += l2.val l2 = l2.next carry, val = divmod(sum_val, 10) curr.next = ListNode(val) curr = curr.next return dummy.next
点赞 回复 分享
发布于 2025-06-19 09:23 广东
class MyQueue: def __init__(self): self.stack_in = [] self.stack_out = [] def push(self, x): self.stack_in.append(x) def pop(self): if not self.stack_out: while self.stack_in: self.stack_out.append(self.stack_in.pop()) return self.stack_out.pop() def peek(self): if not self.stack_out: while self.stack_in: self.stack_out.append(self.stack_in.pop()) return self.stack_out[-1] def empty(self): return not self.stack_in and not self.stack_out
点赞 回复 分享
发布于 2025-06-19 09:20 广东
mark
点赞 回复 分享
发布于 2025-06-08 18:05 广东
mark
点赞 回复 分享
发布于 2025-06-06 00:28 福建
mark
点赞 回复 分享
发布于 2025-06-04 15:03 江西
mark
点赞 回复 分享
发布于 2025-06-03 11:34 山东
mark
点赞 回复 分享
发布于 2025-06-03 11:03 广东
mark
点赞 回复 分享
发布于 2025-05-29 10:50 辽宁
mark
点赞 回复 分享
发布于 2025-05-27 19:46 贵州
mark
点赞 回复 分享
发布于 2025-05-27 11:00 江苏
m
点赞 回复 分享
发布于 2025-05-26 16:22 湖北
接好运
点赞 回复 分享
发布于 2025-05-20 18:19 浙江
接好运
点赞 回复 分享
发布于 2025-05-18 11:14 浙江
mark
点赞 回复 分享
发布于 2025-05-18 09:45 河北
mark
点赞 回复 分享
发布于 2025-05-17 20:26 辽宁

相关推荐

04-16 10:27
已编辑
美团_Saas_后端开发
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,拿到美团offer那会感觉自己天都亮了。没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
投了十几个无人回应
花环鞣: 佬,我隔壁的
点赞 评论 收藏
分享
评论
44
231
分享

创作者周榜

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