美团暑实面经 已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 回复 分享
发布于 05-02 13:45 广西
cpu角度 有点过于刁难,过不了我直接你手撕一个汇编代码出来我看看
点赞 回复 分享
发布于 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
点赞 回复 分享
发布于 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的倍数上~这样一步步就能把最后一枚硬币稳稳拿到手啦~
点赞 回复 分享
发布于 06-19 09:31 广东
因为联合索引是按最左列排序的,跳过最左列会导致索引失效,数据库只能全表扫描
点赞 回复 分享
发布于 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
点赞 回复 分享
发布于 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
点赞 回复 分享
发布于 06-19 09:20 广东
mark
点赞 回复 分享
发布于 06-08 18:05 广东
mark
点赞 回复 分享
发布于 06-06 00:28 福建
mark
点赞 回复 分享
发布于 06-04 15:03 江西
mark
点赞 回复 分享
发布于 06-03 11:34 山东
mark
点赞 回复 分享
发布于 06-03 11:03 广东
mark
点赞 回复 分享
发布于 05-29 10:50 辽宁
mark
点赞 回复 分享
发布于 05-27 19:46 贵州
mark
点赞 回复 分享
发布于 05-27 11:00 江苏
m
点赞 回复 分享
发布于 05-26 16:22 湖北
接好运
点赞 回复 分享
发布于 05-20 18:19 浙江
接好运
点赞 回复 分享
发布于 05-18 11:14 浙江
mark
点赞 回复 分享
发布于 05-18 09:45 河北
mark
点赞 回复 分享
发布于 05-17 20:26 辽宁

相关推荐

头像
08-27 22:28
已编辑
门头沟学院 Java
1.简单寒暄了几句2.自我介绍3.项目拷打a.项目里Nginx负载均衡怎么做的?b.Nginx配置集群怎么做?[以为问的是后端集群在Nginx怎么配置,结果是Nginx服务器集群怎么配置,没做过Nginx服务器集群根本不知道]c.你的多后端服务配置在哪?[追问:为什么在Linux不在Docker上?]d.从键入请求到你的服务返回响应中间发生了什么?e.那你得到IP地址和MAC地址去请求集群中哪台Nginx服务器?f.域名挂靠怎么挂靠的[没听懂这里想问什么,可能是请求的后端服务器的域名或者其他的,有牛友可以解答一下吗]g.Linux命令了解吗?h.我如果把Nginx的配置文件的所属目录更改了,那我要做哪些操作这里面试官看出来我没什么实战经验了,直接问我你刚才说的是不是都是背的?(好想钻地缝里去)开始拷打操作系统:1.删除一个文件在操作系统里面是什么流程?2.进程线程区别?3.你刚才提到说进程独立分配资源,具体有哪些资源?4.硬链接软链接了解吗?区别在哪?接着拷打数据库:1.做过数据库备份吗?对应SQL语句是什么?[忘光光]2.来个SQL查询,分别找出学生表中姓李的男生女生个数(我的答案是group by 性别 having name like “李%”,面试官说为什么不where name like “李%” group by 性别,汗流浃背了)3.来写一个反射的实例以及方法的调用(几百年没写过反射了,直接蒙了)手撕在数组中出现次数超过一半的数字面试官可能看我好多答不上来有点尴尬,接着问我消息队列:1.kafka的原理?2.kafka部署在几台机器上,一个分区几个副本?一个小时的面试道歉道了半个小时,面试官说我可能会的比较偏门,他没问到,他温我哭😭前功尽弃了,下一次离字节这么近会是什么时候呢
查看20道真题和解析
点赞 评论 收藏
分享
评论
43
232
分享

创作者周榜

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