版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年美团技术面试题及答案一、编程题(共5题,每题20分,总分100分)1.数组反转(20分)题目:给定一个整数数组`nums`,原地反转数组中的元素,不使用额外数组。示例:输入`[1,2,3,4,5]`,输出`[5,4,3,2,1]`。要求:时间复杂度O(n),空间复杂度O(1)。javapublicvoidreverse(int[]nums){intleft=0,right=nums.length-1;while(left<right){inttemp=nums[left];nums[left]=nums[right];nums[right]=temp;left++;right--;}}答案解析:-使用双指针法,`left`从数组开头,`right`从数组末尾开始,交换两个指针指向的元素,然后移动指针直到`left>=right`。-时间复杂度:遍历数组一次,为O(n)。-空间复杂度:只使用常数个额外变量,为O(1)。2.字符串匹配(20分)题目:实现`strStr()`函数,查找字符串`haystack`中子串`needle`首次出现的位置。如果未找到,返回-1。示例:`haystack="hello"`,`needle="ll"`,返回`2`。要求:不使用库函数,时间复杂度尽可能低。javapublicintstrStr(Stringhaystack,Stringneedle){if(needle.length()==0)return0;for(inti=0;i<=haystack.length()-needle.length();i++){booleanmatch=true;for(intj=0;j<needle.length();j++){if(haystack.charAt(i+j)!=needle.charAt(j)){match=false;break;}}if(match)returni;}return-1;}答案解析:-使用暴力匹配法,遍历`haystack`的每个位置,检查从当前位置开始的子串是否与`needle`相同。-外层循环遍历`haystack`的每个可能起始位置(最多`n-m+1`次),内层循环比较子串是否匹配。-时间复杂度:O(nm),其中n是`haystack`长度,m是`needle`长度。-空间复杂度:O(1)。3.链表合并(20分)题目:合并两个有序链表,返回合并后的有序链表。示例:`l1=[1,2,4]`,`l2=[1,3,4]`,返回`[1,1,2,3,4,4]`。要求:合并后链表仍使用原链表的节点,不创建新节点。javapublicListNodemergeTwoLists(ListNodel1,ListNodel2){ListNodedummy=newListNode(0);ListNodecurrent=dummy;while(l1!=null&&l2!=null){if(l1.val<=l2.val){current.next=l1;l1=l1.next;}else{current.next=l2;l2=l2.next;}current=current.next;}if(l1!=null)current.next=l1;if(l2!=null)current.next=l2;returndummy.next;}答案解析:-使用虚拟头节点`dummy`简化边界处理。-比较`l1`和`l2`的当前节点值,将较小的节点接到`current`的`next`,并移动对应的指针。-时间复杂度:O(n+m),n和m分别是两个链表的长度。-空间复杂度:O(1)。4.递归求阶乘(20分)题目:实现一个递归函数计算`n`的阶乘(`n>=0`)。示例:`n=5`,返回`120`。要求:不使用迭代或库函数。javapublicintfactorial(intn){if(n==0)return1;returnnfactorial(n-1);}答案解析:-阶乘的定义:`n!=n(n-1)!`,递归基为`0!=1`。-递归深度为`n`,若`n`较大可能栈溢出,但美团面试中`n`通常较小(如`n<=100`)。-时间复杂度:O(n)。-空间复杂度:O(n),因递归调用栈深度为n。5.动态规划(20分)题目:给定一个数组`nums`,返回其中最长不重复子串的长度。示例:`nums=[1,2,0,1,2,3]`,返回`4`(子串`[0,1,2,3]`)。要求:不使用额外空间。javapublicintlengthOfLongestSubstring(int[]nums){int[]last=newint[256];//存储每个字符最后出现的位置Arrays.fill(last,-1);intmaxLen=0,start=0;for(inti=0;i<nums.length;i++){if(last[nums[i]]>=start){start=last[nums[i]]+1;}last[nums[i]]=i;maxLen=Math.max(maxLen,i-start+1);}returnmaxLen;}答案解析:-使用滑动窗口技术,`start`表示当前子串的起始位置,`maxLen`记录最大长度。-`last`数组记录每个字符最后出现的位置,若当前字符`nums[i]`之前已出现且位置在`start`之后,则更新`start`为该字符上次出现位置加1。-时间复杂度:O(n),遍历数组一次。-空间复杂度:O(1),`last`数组大小固定(256个ASCII字符)。二、系统设计题(共3题,每题30分,总分90分)1.高并发短链接服务设计(30分)题目:设计一个高并发的短链接服务(如`tinyurl`),要求:-支持秒级生成和解析短链接。-高并发下(QPS>10万)稳定运行。-支持自定义短链接前缀(如`http://meituan短链接/`)。-具备一定的安全性(如防止恶意跳转)。设计思路:1.短链接生成:-使用哈希算法(如SHA-256)对原始URL进行哈希,取前6位作为短码。-为避免冲突,可增加重试机制或自增序列。-支持自定义前缀,通过配置区分不同业务域名。2.存储层:-使用Redis(单机或集群)存储短码与原始URL的映射,支持高并发读写。-Key:`url:shortcode`,Value:原始URL,过期时间(如24小时)。3.高并发处理:-使用Nginx或HAProxy做负载均衡,分发请求到多个后端服务。-后端服务使用无状态架构,便于水平扩展。4.安全性:-防止重定向攻击:校验短链接域名是否为白名单。-防止URL篡改:客户端使用HTTPS请求,服务端校验签名。5.监控与告警:-使用Prometheus监控QPS、错误率,设置告警阈值。答案解析:-关键点:短码生成、高并发存储、负载均衡、安全性。-技术选型合理性:Redis高并发读写、Nginx负载均衡。-扩展性考虑:支持自定义前缀、水平扩展。2.地域化推荐系统设计(30分)题目:设计一个针对中国地区的个性化推荐系统(如美团外卖),要求:-考虑地域(如北京、上海)、时间(如午高峰)、用户历史行为。-排除本地已下架或不符合当地口味的商家。-实时更新推荐结果(如30秒内)。设计思路:1.数据采集:-用户行为:点击、下单、收藏、评价(实时写入Kafka)。-商家数据:地理位置(经纬度)、品类、评分(存储在MySQL+Redis)。2.推荐逻辑:-用户ID+地域(通过IP或用户设置)作为推荐入口。-结合协同过滤(CF)、内容推荐(CB)和基于场景的推荐(如午高峰推荐快餐)。-使用向量召回(如LambdaMART、DeepFM)筛选候选集,再通过排序模型(如LR、LambdaMART)打分。3.地域化处理:-商家数据加入地域标签,如“北京-快餐”。-使用GeoHash对地理位置进行索引,快速筛选本地商家。4.实时性优化:-用户行为实时计算推荐(Flink或SparkStreaming)。-商家下架或评分更新后,通过Redis缓存异步更新。答案解析:-关键点:地域化、实时性、多样性。-技术选型合理性:Kafka实时采集、Redis缓存、SparkStreaming实时计算。-业务场景贴合:午高峰、本地口味排除。3.美团外卖订单超时重派单系统设计(30分)题目:设计一个外卖订单超时重派单系统,要求:-检测骑手超时后自动触发重派单。-优先分配给距离商家最近且骑手空闲的骑手。-避免频繁重派导致用户体验下降。设计思路:1.超时检测:-订单状态(待接单、派单中)超时(如30分钟)后,系统自动标记为“可重派”。-使用定时任务(如Cron)或消息队列(Kafka)触发检测。2.骑手选择:-使用GeoHash将订单和骑手位置映射到网格,快速查找附近空闲骑手。-优先级:距离近+骑手评分高+排班状态匹配。3.防
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业机器人系统操作员职业技能认证模拟试卷及答案
- 2025年下半年卫生监督信息员培训测试题及答案
- 2025年幼儿园副园长年度工作总结
- 2025年三级摄影(摄像)师考试题库及完整答案
- 河道治理及生态修复工程施工方案与技术措施
- 医疗服务2026年特色发展
- 2026年销售技巧提升培训课程
- 2026 年民政局离婚协议书正规模板含全部核心条款
- 2026 年离婚协议书合规制式模板
- 2026 年法定化离婚协议书规范模板
- 2026年残疾人联合会就业服务岗招聘笔试适配题含答案
- 2026年山西警官职业学院单招综合素质笔试备考题库带答案解析
- 2026年农夫山泉-AI-面试题目及答案
- 2026凯翼汽车全球校园招聘(公共基础知识)综合能力测试题附答案
- 山东省威海市环翠区2024-2025学年一年级上学期1月期末数学试题
- 2025年手术室护理实践指南知识考核试题及答案
- 外贸公司采购专员绩效考核表
- 彩礼分期合同范本
- 胸腺瘤伴重症肌无力课件
- 十五五安全生产规划思路
- 一年级地方课程教案
评论
0/150
提交评论