版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年美团技术经理面试题及答案参考一、编程题(共5题,每题10分,总分50分)1.题目:请实现一个函数,输入一个正整数`n`,返回`n`的阶乘。要求:不能使用递归,时间复杂度尽可能低。答案与解析:pythondeffactorial(n):result=1foriinrange(1,n+1):result=ireturnresult解析:-使用循环计算阶乘,避免递归导致的栈溢出问题。-时间复杂度为O(n),空间复杂度为O(1)。2.题目:给定一个无重复元素的数组`nums`和一个目标值`target`,请找出数组中和为目标值`target`的两个数,并返回它们的索引。假设每个输入都有且只有一对解,不能重复使用同一个元素。答案与解析:pythondeftwo_sum(nums,target):num_to_index={}fori,numinenumerate(nums):complement=target-numifcomplementinnum_to_index:return[num_to_index[complement],i]num_to_index[num]=i解析:-使用哈希表记录每个数字的索引,可以在O(n)时间内找到目标解。-避免重复使用同一元素,通过哈希表快速查找补数。3.题目:请实现一个函数,输入一个字符串`s`,返回其最长的回文子串的长度。例如:输入`s="babad"`,输出`3`("bab"或"aba")。答案与解析:pythondeflongest_palindrome(s):ifnots:return0n=len(s)dp=[[False]nfor_inrange(n)]max_len=1foriinrange(n):dp[i][i]=Trueforiinrange(n-1,-1,-1):forjinrange(i+1,n):ifs[i]==s[j]:ifj-i==1ordp[i+1][j-1]:dp[i][j]=Truemax_len=max(max_len,j-i+1)returnmax_len解析:-使用动态规划解决,`dp[i][j]`表示`s[i:j+1]`是否为回文。-时间复杂度为O(n²),空间复杂度为O(n²)。4.题目:请实现一个函数,输入一个链表的头节点`head`,返回其反转后的链表。答案与解析:pythonclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextdefreverse_linked_list(head):prev=Nonecurrent=headwhilecurrent:next_node=current.nextcurrent.next=prevprev=currentcurrent=next_nodereturnprev解析:-使用迭代方式反转链表,时间复杂度为O(n),空间复杂度为O(1)。-注意边界条件的处理,如空链表或单节点链表。5.题目:请实现一个函数,输入一个字符串`s`,返回其所有可能的排列组合。例如:输入`s="abc"`,输出`["abc","acb","bac","bca","cab","cba"]`。答案与解析:pythondefpermute(s):result=[]defbacktrack(path,used):iflen(path)==len(s):result.append("".join(path))returnforiinrange(len(s)):ifnotused[i]:used[i]=Truepath.append(s[i])backtrack(path,used)path.pop()used[i]=Falsebacktrack([],[False]len(s))returnresult解析:-使用回溯算法生成所有排列,时间复杂度为O(n!)。-通过`used`数组避免重复使用字符。二、系统设计题(共2题,每题25分,总分50分)1.题目:设计一个短链接系统(如`tinyurl`),要求:-输入一个长链接,返回一个短链接。-支持自定义短链接前缀(可选)。-支持统计短链接的访问次数。答案与解析:系统架构:1.短链接生成:-使用自增ID或哈希算法(如Base62编码)生成短标识符。-例如:将ID100000转换为`aGVh`(Base62编码)。2.数据存储:-使用Redis或MySQL存储短链接与长链接的映射关系。-Redis适合高并发场景,支持原子操作。3.访问统计:-每次访问时,更新短链接的访问次数(Redis的`INCR`命令)。4.自定义前缀:-允许用户输入前缀(如`/`),需校验前缀有效性。伪代码示例:pythondefgenerate_short_url(long_url,prefix=""):生成唯一ID(如自增或哈希)short_id=encode_base62(get_next_id())存储映射关系redis.set(f"{prefix}{short_id}",long_url)returnf"{prefix}{short_id}"defget_long_url(short_url):long_url=redis.get(short_url)iflong_url:更新访问次数redis.incr(short_url)returnlong_url解析:-关键点:高并发处理、ID生成效率、可扩展性。-可用技术:Redis、Base62编码、负载均衡。2.题目:设计一个高并发的秒杀系统,要求:-支持每秒大量用户请求。-防止超卖和重复下单。-系统可用性高。答案与解析:系统架构:1.请求分发:-使用负载均衡(如Nginx)分发请求到多个后端服务器。2.库存扣减:-使用Redis的`SETNX`命令原子扣减库存,避免超卖。-若库存不足,返回失败响应。3.防重复下单:-使用分布式锁(如Redis分布式锁)或订单号唯一性校验。4.数据一致性:-使用事务或消息队列(如Kafka)保证订单和库存的一致性。伪代码示例:pythondef秒杀下单(user_id,goods_id):尝试锁定库存lock_key=f"lock:{goods_id}"ifredis.setnx(lock_key,1):try:检查库存stock=redis.get(f"stock:{goods_id}")ifstock>0:redis.decr(f"stock:{goods_id}")创建订单create_order(user_id,goods_id)return"成功"else:return"库存不足"finally:redis.del(lock_key)else:return"超卖"解析:-关键点:原子操作、分布式锁、高并发控制。-可用技术:Redis、分布式锁、事务。三、数据库与分布式系统题(共3题,每题15分,总分45分)1.题目:如何优化一个大型数据库的查询性能?请列举至少三种方法。答案与解析:1.索引优化:-为高频查询字段添加索引(如`order_id`、`user_id`)。-使用复合索引(如`create_timedesc,user_id`)。2.查询缓存:-使用Redis缓存热点数据(如商品信息、用户信息)。-设置合理的过期时间。3.分库分表:-按业务线分库(如订单库、用户库)。-按字段分表(如按`user_id`分表)。解析:-索引是基础,缓存提升效率,分库分表解决数据量过大问题。2.题目:如何设计一个分布式任务调度系统(如定时清理过期数据)?答案与解析:系统架构:1.任务注册:-使用Zookeeper或Etcd注册任务信息(任务ID、执行时间)。2.任务执行:-使用Quartz或自研调度器分发任务到多个执行节点。3.容错机制:-心跳检测,节点故障时自动迁移任务。-重复执行时,使用幂等性设计(如检查任务是否已完成)。伪代码示例:pythondefregister_task(task_id,execute_time):zk.create(f"/tasks/{task_id}",str(execute_time))defexecute_task(task_id):检查任务是否已执行ifnotredis.exists(f"done:{task_id}"):执行任务perform_task(task_id)redis.set(f"done:{task_id}","true")解析:-关键点:任务注册、分布式执行、容错性。-可用技术:Zookeeper、Quartz、Redis。3.题目:如何解决分布式事务中的数据一致性问题?答案与解析:1.2PC协议:-强一致性方案,但性能较差。2.TCC(Try-Confirm-Cancel):-按业务原子性拆分操作(如下单、库存扣减)。3.Saga模式:-将长事务拆分为多个本地事务,使用补偿事务处理失败。解析:-根据业务场景选择合适的方案,2PC适合强一致性需求,TCC/Saga适合高可用场景。四、算法与数据结构题(共3题,每题15分,总分45分)1.题目:给定一个链表,判断是否存在环。如果存在,返回入口节点;否则返回`None`。答案与解析:pythondefdetect_cycle(head):slow=fast=headwhilefastandfast.next:slow=slow.nextfast=fast.next.nextifslow==fast:寻找入口节点slow=headwhileslow!=fast:slow=slow.nextfast=fast.nextreturnslowreturnNone解析:-使用快慢指针判断环,时间复杂度为O(n),空间复杂度为O(1)。2.题目:请实现一个LRU(LeastRecentlyUsed)缓存,支持get和put操作。答案与解析:pythonclassLRUCache:def__init__(self,capacity):self.capacity=capacityself.cache={}self.head,self.tail=ListNode(),ListNode()self.head.next=self.tailself.tail.prev=self.headdef_add_node(self,node):node.prev=self.headnode.next=self.head.nextself.head.next.prev=nodeself.head.next=nodedef_remove_node(self,node):prev_node=node.prevnext_node=node.nextprev_node.next=next_nodenext_node.prev=prev_nodedef_move_to_head(self,node):self._remove_node(node)self._add_node(node)def_pop_tail(self):res=self.tail.prevself._remove_node(res)returnresdefget(self,key):node=self.cache.get(key,None)ifnotnode:return-1self._move_to_head(node)returnnode.valdefput(self,key,value):node=self.cache.get(key)ifnotnode:newNode=ListNode(key,value)self.cache[key]=newNodeself._add_node(newNode)iflen(self.cache)>self.capacity:tail=self._pop_tail()delself.cache[tail.key]else:node.val=valueself._move_to_head(node)解析:-使用双向链表+哈希表实现,get操作移动节点到头部,put操作先检查是否存在,若超过容量则删除尾部节点。3.题目:请实现一个函数,输入一个字符串`s`,返回其字符的所有可能组合(不重复)。例如:输入`s="abc"`,输出`["a","b","c","
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨境电商海外仓仓储防损2025年保险合同协议
- 2025 小学六年级语文下册 口语交际 主持稿过渡句设计示例课件
- 跨境电商独立站独立站交易安全保障协议2025年
- 2025年办公室通风系统保养协议
- 空调安装合同协议2025年
- 2025年VR主题公园开发合同协议
- 2025年AI虚拟人形象使用权合同协议
- 酒店式公寓转租合同协议2025年规范文本
- 深度解析(2026)《GBT 39313-2020橡胶软管及软管组合件 输送石油基或水基流体用致密钢丝编织增强液压型 规范》(2026年)深度解析
- 护士面试题纲及答案
- 第三单元 文明与家园(教案) 2025-2026学年统编版道德与法治 九年级上册
- 2025浙江宁波农商发展集团有限公司招聘3人考试参考题库及答案1套
- 2025年1月福建省普通高中学业水平合格性考试语文试题(含答案详解)
- 2026商业地产马年新春年货节“金马迎春年货大集”活动策划方案【春节活动】
- 手术室院感课件
- 药剂科年度工作总结与未来规划报告
- 口腔护士种植课件
- 2025临沂市检察机关公开招聘聘用制书记员(47名)备考笔试试题及答案解析
- 企业个人信息保护合规检查清单
- 无痛人流术前术后护理要点
- 北京工商大学《无机与分析化学(1)》2024-2025学年第一学期期末试卷
评论
0/150
提交评论