版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2026年美團技術專家面試問題及答案一、編程基礎與算法(共5題,每題10分,總分50分)1.題目:給定一個未排序的整數(shù)數(shù)組,返回其中缺失的最小正整數(shù)。要求:-時間復雜度O(n),空間復雜度O(1)。-示例輸入:`[3,4,-1,1]`,輸出:`2`。答案:cppintfirstMissingPositive(int[]nums){intn=nums.length;for(inti=0;i<n;i++){while(nums[i]>0&&nums[i]<=n&&nums[nums[i]-1]!=nums[i]){swap(nums[i],nums[nums[i]-1]);}}for(inti=0;i<n;i++){if(nums[i]!=i+1)returni+1;}returnn+1;}解析:-首先遍歷數(shù)組,將每個正整數(shù)`x`放到其應位置`x-1`(如`1`在索引`0`)。-交換時跳過非正數(shù)、超出范圍的數(shù)以及已正確放置的數(shù)。-最后遍歷檢查首個不匹配的位置即為缺失最小正整數(shù)。2.題目:實現(xiàn)LRU(LeastRecentlyUsed)緩存,支持`get`和`put`操作。要求:-`get(key)`:返回鍵的值,若不存在返回-1。-`put(key,value)`:插入或更新鍵值對,容量超出時刪除最久未使用項。-示例:`LRU{capacity=2}`,`put(1,1)`,`put(2,2)`,`get(1)`返回`1`,`put(3,3)`(刪除`2`),`get(2)`返回`-1`。答案:cppclassLRUCache{unordered_map<int,list<pair<int,int>>::iterator>cache;list<pair<int,int>>list;intcapacity;public:LRUCache(intcap):capacity(cap){}intget(intkey){autoit=cache.find(key);if(it==cache.end())return-1;list.splice(list.begin(),list,it->second);returnit->second->second;}voidput(intkey,intvalue){autoit=cache.find(key);if(it!=cache.end()){list.splice(list.begin(),list,it->second);it->second->second=value;}else{if(cache.size()==capacity){cache.erase(list.back().first);list.pop_back();}list.push_front({key,value});cache[key]=list.begin();}}};解析:-使用`list`維護訪問順序(頭為最近使用),`unordered_map`記錄鍵到節(jié)點的映射。-`get`時移動節(jié)點到頭部并返回值;`put`時若存在則更新,否則刪除尾節(jié)點插入新節(jié)點。3.題目:設計一個算法,找出數(shù)組中重復次數(shù)超過一半的元素。要求:-時間復雜度O(n),空間復雜度O(1)。-示例輸入:`[2,2,1,1,1,2,2]`,輸出:`2`。答案:cppintmajorityElement(int[]nums){intcandidate=0,count=0;for(intnum:nums){if(count==0)candidate=num;count+=(num==candidate)?1:-1;}returncandidate;}解析:-Boyer-Moore投票法:遍歷時維護候選者和計數(shù)器。-多數(shù)元素出現(xiàn)次數(shù)超過一半,最終候選者即為答案。4.題目:給定一個二叉樹,判斷其是否為對稱二叉樹(鏡像對稱)。要求:-示例輸入:`[1,2,2,3,4,4,3]`,輸出:`true`。答案:cppboolisSymmetric(TreeNoderoot){returnisMirror(root,root);}boolisMirror(TreeNodet1,TreeNodet2){if(!t1&&!t2)returntrue;if(!t1||!t2)returnfalse;returnt1->val==t2->val&&isMirror(t1->left,t2->right)&&isMirror(t1->right,t2->left);}解析:-遞歸比較對稱位置節(jié)點:左子樹的左與右子樹的右,左與右相反。-若所有對稱節(jié)點值相等且結構相同則返回`true`。5.題目:實現(xiàn)一個函數(shù),檢查字符串是否為有效括號組合(`'(',')','{','}','[',']'`)。要求:-示例輸入:`"(){}[]"`,輸出:`true`。答案:cppboolisValid(strings){stack<char>st;unordered_map<char,char>pairs={{')','('},{'}','{'},{'}','['}};for(charc:s){if(pairs.count(c)){if(st.empty()||st.top()!=pairs[c])returnfalse;st.pop();}else{st.push(c);}}returnst.empty();}解析:-使用棧匹配括號:遍歷字符,若為右括號則檢查棧頂是否匹配,否則入棧。-最終棧為空則有效。二、系統(tǒng)設計(共3題,每題15分,總分45分)1.題目:設計美團外賣的實時訂單分配系統(tǒng),支持高并發(fā)場景。要求:-說明核心模塊(如訂單池、騎手隊列)、數(shù)據(jù)結構、約束條件(延遲、負載均衡)。-地域特點:考慮北京三環(huán)內訂單密度大、騎手動態(tài)增減。答案:-核心模塊:-訂單池:Redis集群存儲訂單,按區(qū)域+優(yōu)先級(距離/預估時間)排序。-騎手隊列:每個區(qū)域維護騎手池,按評分/距離排序。-分配算法:輪詢+負載均衡(騎手活躍度/距離權重)。-數(shù)據(jù)結構:json{"orders":{"zone1":[{"id":1,"distance":0.5,"timeout":5},...]},"riders":{"zone1":[{"id":101,"load":2,"score":4.8},...]}}-約束:-訂單超時(如5分鐘未分配則降低優(yōu)先級)。-騎手動態(tài)加入(心跳更新負載)。解析:-高并發(fā)需分布式鎖保護關鍵節(jié)點(如訂單狀態(tài))。-地域特性需本地化緩存減少跨區(qū)請求(如三環(huán)訂單優(yōu)先分配本地騎手)。2.題目:設計美團閃購的即時配送路由優(yōu)化系統(tǒng)。要求:-支持路徑規(guī)劃(Dijkstra/Floyd)、實時路況(如擁堵系數(shù)),考慮騎手手機端延遲。答案:-路由模塊:-靜態(tài)路網:Graphviz存儲道路權重(距離/時間)。-動態(tài)更新:WebSocket接收實時路況,動態(tài)調整權重。-算法選擇:-城市內用Dijkstra(單源最短路徑),跨區(qū)用Floyd-Warshall。-騎手端適配:-增加移動端延遲補償(如預留5秒超時)。解析:-考慮美團場景中騎手手機GPS延遲,需預規(guī)劃+動態(tài)微調。3.題目:設計外賣商家優(yōu)惠券系統(tǒng),支持多種類型(滿減/折扣券)。要求:-說明優(yōu)惠券校驗邏輯、庫存控制、分布式事務方案。答案:-優(yōu)惠券存儲:json{"cupid":{"type":"discount","value":0.8,"limit":100},"coupon":{"type":"滿30減10","stack":false,"limit":200}}-校驗邏輯:sqlSELECTFROMcouponsWHEREcode=user_codeAND(type='discount'OR(type='滿減'ANDuser_order>value))ANDexpiry>now()ANDstock>0FORUPDATE-事務:-使用Redis事務(Watch+Lua)或Raft協(xié)議保證原子性。解析:-需考慮優(yōu)惠券疊加沖突(如折扣券+滿減不能同時用)。三、數(shù)據(jù)庫與分布式(共4題,每題12分,總分48分)1.題目:美團點評的業(yè)務數(shù)據(jù)量巨大,如何設計高可用訂單數(shù)據(jù)庫?要求:-說明分庫分表策略、索引優(yōu)化、容災方案。答案:-分庫分表:-按區(qū)域分庫:如`order_1`(華東區(qū)),避免跨區(qū)網絡延遲。-訂單表分片:`order_id%100`(美團常用取模分片)。-索引優(yōu)化:sqlCREATEINDEXidx_user_orderONorders(user_id,create_time);-容災:-MySQL雙主(同步+異步復制),跨機房同步。解析:-考慮美團訂單高頻寫入特性,異步復制可降低延遲。2.題目:設計美團支付系統(tǒng)的分布式事務方案。要求:-對比TCC、Saga、本地消息表,說明美團實踐。答案:-美團實踐:-訂單支付:本地消息表(異步補償)。-跨店預付:Saga(兩階段提交變種)。-本地消息表流程:java//訂單模塊booleanpayOrder(){booleanres=reduceStock();if(res)saveOrder();returnres;}//消息補償模塊compensateOrder();解析:-本地消息表適用于補償簡單場景,Saga適合強一致性業(yè)務。3.題目:美團點評如何實現(xiàn)億級用戶畫像的實時計算?要求:-說明數(shù)據(jù)流處理架構(Flink/Kafka),特征存儲方案。答案:-架構:mermaidgraphLRA[用戶行為]-->B{Flink}B-->C[實時特征]C-->D(HBase/Redis)-特征存儲:-冷特征:HBase(SQL能力)。-熱特征:Redis(毫秒級讀?。=馕觯?考慮用戶畫像需實時更新(如簽到/簽到獎勵)。4.題目:設計美團點評的分布式緩存策略,解決緩存雪崩。要求:-說明多級緩存(本地+遠程)、熱點數(shù)據(jù)預熱。答案:-多級緩存:-本地緩存:GuavaCache(秒級數(shù)據(jù))。-遠程緩存:RedisCluster(熱點數(shù)據(jù))。-雪崩防御:java//熱點數(shù)據(jù)預熱scheduleFixedRate(1,()->preloadHotData());解析:-考慮美團場景中商品頁高頻訪問,需避免遠程緩存穿透。四、網絡與中間件(共3題,每題15分,總分45分)1.題目:設計美團外賣的實時消息推送系統(tǒng)(如騎手取餐提醒)。要求:-說明WebSocket/Server-SentEvents,流量控制方案。答案:-架構:mermaidgraphLRA[騎手App]<-->B{WebSocketServer}B-->C{MQTT}C-->D{訂單模塊}-流量控制:-消息壓縮:Gzip/Protobuf。-限流:Nginx/Limitless(IP/用戶)。解析:-考慮騎手網絡不穩(wěn)定,需斷線重連機制。2.題目:設計美團點評的分布式任務調度系統(tǒng)。要求:-對比Cron/Quartz,說明美團自研調度器特點。答案:-美團調度器:-特性:-延遲任務:支持毫秒級執(zhí)行。-集群化:節(jié)點間任務轉移。-流程:java//任務注冊JobRegistry.register("cleanExpiredOrders",CleanExpiredOrdersJob.class);解析:-考慮美團場景中任務種類多(如優(yōu)惠券過期清理)。3.題目:設計美團外賣的API網關,處理超長鏈路。要求:-說明請求合并、服務熔斷策略。答案:-請求合并:java//APIGateway合并請求if(userSession.hasPendingOrders()){returnmergeOrders();}-熔斷:java//Hystrix配置CircuitBreakercb=newHystrixCommand(){protectedObjectrun(){returncallOrderService();}}.withCircuitBreakerEnabled();解析:-考慮美團API鏈路長(如用戶->騎手->商家),需減少跳轉。五、綜合與開放問題(共2題,每題20分,總分40分)1.題目:美團點評如何應對雙十一等大促流量洪峰?要求:-說明限流、降級、彈性伸縮方案。答案:-限流:-預熱期:線上壓測+線下模擬。-實時:流量削峰(如排隊系統(tǒng))。-降級:javaif
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 堵漏報價合同范本
- 場地改造合同范本
- 擦背承包合同范本
- 合資買房合同范本
- 場地清掃合同范本
- 撤柜合同范本模板
- 商場導購合同范本
- 培訓交付合同范本
- 培訓費用合同范本
- 墓體修復合同范本
- 紡織行業(yè)發(fā)展規(guī)劃
- 公路項目施工安全培訓課件
- 2025顱內動脈粥樣硬化性狹窄診治指南解讀課件
- 臺灣農會信用部改革:資產結構重塑與效能提升的深度剖析
- 單軌吊司機培訓課件
- 初級消防員培訓課程教學大綱
- 2025年廣東省中考物理試題卷(含答案)
- 《電子商務師(四級)理論知識鑒定要素細目表》
- 高通量測序平臺考核試卷
- 2024-2030年中國花卉電商行業(yè)發(fā)展前景預測及投資策略研究報告
- T/CI 475-2024廚余垃圾廢水處理工程技術規(guī)范
評論
0/150
提交評論