版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2026年美團(tuán)技術(shù)支持團(tuán)隊(duì)面試題集一、編程語言與算法(共5題,每題10分,總分50分)1.題目:實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)非負(fù)整數(shù)`n`,返回`n`的平方根,精確到小數(shù)點(diǎn)后兩位。不得使用第三方庫,只能使用加減乘除和循環(huán)。示例:輸入:`8`,輸出:`2.83`輸入:`0`,輸出:`0.00`2.題目:給定一個(gè)字符串`s`,統(tǒng)計(jì)其中最長連續(xù)重復(fù)子串的長度。例如:輸入:`"aabbbccddd"`,輸出:`4`(對(duì)應(yīng)`"ddd"`)輸入:`"abcdef"`,輸出:`1`3.題目:實(shí)現(xiàn)快速排序算法,要求在原地排序(不使用額外數(shù)組),并說明時(shí)間復(fù)雜度和空間復(fù)雜度。4.題目:設(shè)計(jì)一個(gè)LRU(最近最少使用)緩存,容量為`capacity`。支持`get(key)`和`put(key,value)`操作。要求時(shí)間復(fù)雜度為O(1)。5.題目:給定一個(gè)鏈表,判斷是否為回文鏈表。例如:輸入:`1->2->2->1`,輸出:`true`輸入:`1->2`,輸出:`false`二、系統(tǒng)設(shè)計(jì)(共3題,每題20分,總分60分)1.題目:設(shè)計(jì)一個(gè)高并發(fā)的短鏈接生成系統(tǒng),要求:-支持秒級(jí)訪問量百萬級(jí)別。-鏈接長度不超過6位。-支持分布式部署和快速擴(kuò)展。-說明核心組件設(shè)計(jì)(數(shù)據(jù)庫、緩存、負(fù)載均衡等)。2.題目:美團(tuán)外賣用戶實(shí)時(shí)位置上報(bào)系統(tǒng),要求:-支持百萬級(jí)用戶實(shí)時(shí)位置更新。-位置數(shù)據(jù)需支持5分鐘內(nèi)過期。-如何保證數(shù)據(jù)一致性(例如,用戶移動(dòng)時(shí)平滑更新位置)。3.題目:設(shè)計(jì)一個(gè)美團(tuán)閃購的訂單實(shí)時(shí)推送系統(tǒng),要求:-推送給騎手時(shí)需考慮網(wǎng)絡(luò)延遲和騎手位置。-支持騎手手動(dòng)確認(rèn)或拒絕訂單。-說明如何優(yōu)化消息隊(duì)列(如Kafka/RocketMQ)。三、數(shù)據(jù)庫與存儲(chǔ)(共2題,每題15分,總分30分)1.題目:美團(tuán)商品詳情頁需要緩存商品數(shù)據(jù),假設(shè)使用Redis和MySQL,說明:-Redis如何設(shè)計(jì)key(例如`goods:detail:{goods_id}`);-MySQL分庫分表方案(例如按商品類目或ID范圍)。2.題目:某城市騎手每日訂單量數(shù)據(jù)存儲(chǔ)在MySQL中,表結(jié)構(gòu)為:sqlCREATETABLEorders(idINTAUTO_INCREMENTPRIMARYKEY,rider_idINT,order_timeDATETIME,amountDECIMAL(10,2));如何優(yōu)化查詢:`SELECTrider_id,COUNT()FROMordersWHEREorder_timeBETWEEN'2026-01-01'AND'2026-01-31'GROUPBYrider_idORDERBYCOUNT()DESCLIMIT10;`四、分布式與中間件(共3題,每題15分,總分45分)1.題目:美團(tuán)支付系統(tǒng)需要支持跨域事務(wù),說明:-如何使用2PC或TCC方案;-分布式事務(wù)的優(yōu)缺點(diǎn)及美團(tuán)可能的解決方案(如Seata)。2.題目:設(shè)計(jì)一個(gè)美團(tuán)點(diǎn)評(píng)的優(yōu)惠券秒殺系統(tǒng),要求:-使用Redis實(shí)現(xiàn)搶購鎖;-如何防止超賣和秒殺失敗。3.題目:美團(tuán)內(nèi)部消息通知系統(tǒng)使用RabbitMQ,說明:-如何保證消息不丟失(生產(chǎn)者、消費(fèi)者、Broker三端策略);-如何處理消息積壓問題。五、網(wǎng)絡(luò)與系統(tǒng)運(yùn)維(共2題,每題15分,總分30分)1.題目:美團(tuán)外賣App需要兼容4G和5G網(wǎng)絡(luò)環(huán)境,說明:-如何優(yōu)化圖片和API響應(yīng)速度;-DNS輪詢和CDN結(jié)合的方案。2.題目:某區(qū)域服務(wù)器CPU使用率持續(xù)飆高,如何排查:-`top`/`dstat`命令分析;-是否需要擴(kuò)容或調(diào)整隊(duì)列。答案與解析一、編程語言與算法1.答案:pythondefsqrt(n:float)->float:ifn<2:returnnprecision=0.01left,right=0,nwhileright-left>precision:mid=(left+right)/2ifmidmid<n:left=midelse:right=midreturnround(left,2)解析:二分查找法,逐步縮小平方根范圍,精度到0.01。時(shí)間復(fù)雜度O(logn),空間復(fù)雜度O(1)。2.答案:pythondeflongest_repeating_substring(s:str)->int:max_len=1current_len=1foriinrange(1,len(s)):ifs[i]==s[i-1]:current_len+=1max_len=max(max_len,current_len)else:current_len=1returnmax_len解析:滑動(dòng)窗口遍歷,記錄連續(xù)重復(fù)字符長度。3.答案:pythondefquick_sort(arr,low,high):iflow<high:pivot=partition(arr,low,high)quick_sort(arr,low,pivot-1)quick_sort(arr,pivot+1,high)defpartition(arr,low,high):pivot=arr[high]i=low-1forjinrange(low,high):ifarr[j]<=pivot:i+=1arr[i],arr[j]=arr[j],arr[i]arr[i+1],arr[high]=arr[high],arr[i+1]returni+1解析:時(shí)間復(fù)雜度O(nlogn),空間復(fù)雜度O(logn)(遞歸棧)。4.答案:pythonclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache={}self.head,self.tail=Node(0,0),Node(0,0)self.head.next,self.tail.prev=self.tail,self.headdefget(self,key:int)->int:ifkeyinself.cache:node=self.cache[key]self._remove(node)self._add(node)returnnode.valuereturn-1defput(self,key:int,value:int)->None:ifkeyinself.cache:self._remove(self.cache[key])node=Node(key,value)self.cache[key]=nodeself._add(node)iflen(self.cache)>self.capacity:lru=self.tail.prevself._remove(lru)delself.cache[lru.key]解析:使用雙向鏈表+哈希表實(shí)現(xiàn),get時(shí)移動(dòng)到頭部,put時(shí)淘汰最久未使用節(jié)點(diǎn)。5.答案:pythonclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=nextdefis_palindrome(head:ListNode)->bool:ifnotheadornothead.next:returnTrueslow,fast=head,headwhilefastandfast.next:slow,fast=slow.next,fast.next.nextsecond_half=reverse_list(slow)first_half=headwhilesecond_half:iffirst_half.val!=second_half.val:returnFalsefirst_half,second_half=first_half.next,second_half.nextreturnTruedefreverse_list(head:ListNode)->ListNode:prev=Nonewhilehead:next_node=head.nexthead.next=prevprev=headhead=next_nodereturnprev解析:快慢指針找到中點(diǎn),反轉(zhuǎn)后半部分,逐個(gè)比對(duì)。二、系統(tǒng)設(shè)計(jì)1.答案:核心組件:-分布式ID生成器(如Snowflake):生成唯一6位短碼(例如`1xxxxx`)。-Redis緩存:緩存`short_url:long_url`映射,TTL設(shè)為1天。-數(shù)據(jù)庫(MySQL分表):按ID范圍分表,支持快速查詢。-負(fù)載均衡(Nginx):分發(fā)請(qǐng)求到不同節(jié)點(diǎn)。2.答案:方案:-數(shù)據(jù)庫(MySQL分表):按區(qū)域分表,每個(gè)用戶一條位置記錄。-Redis:緩存用戶位置,過期5分鐘。-WebSocket實(shí)時(shí)推送:服務(wù)器主動(dòng)更新客戶端位置。-一致性保證:用戶移動(dòng)時(shí)先更新Redis,5秒后同步MySQL。3.答案:方案:-消息隊(duì)列(Kafka):存儲(chǔ)訂單消息,高吞吐。-騎手端SDK:實(shí)時(shí)推送消息,支持確認(rèn)/拒絕。-優(yōu)化:-分區(qū):按騎手ID分區(qū),確保消息順序。-重試機(jī)制:超時(shí)消息延遲重發(fā)。三、數(shù)據(jù)庫與存儲(chǔ)1.答案:Rediskey設(shè)計(jì):-`goods:detail:{goods_id}`:緩存結(jié)構(gòu)包含`{id}`避免沖突。-`goods:cache:{category}`:按類目緩存,減少全表掃描。MySQL分表:-按商品類目分表(如`goods_category_0`~`goods_category_9`)。-按ID范圍分表(如`goods_id_1`存儲(chǔ)`1~10000`)。2.答案:優(yōu)化方案:-索引:在`order_time`和`rider_id`上建組合索引。-分頁:使用`WHERErider_idIN(SELECTidFROMordersWHEREorder_timeBETWEEN...GROUPBYidORDERBYCOUNT()DESCLIMIT100)`預(yù)聚合。-緩存:對(duì)`rider_id`結(jié)果緩存(如Redis)。四、分布式與中間件1.答案:2PC方案:-Prepare階段:分布式事務(wù)各參與方準(zhǔn)備資源,鎖表。-Commit階段:全部成功則提交,否則回滾。美團(tuán)方案:-Seata:基于本地消息表實(shí)現(xiàn)TCC,降低耦合。2.答案:Redis鎖實(shí)現(xiàn):pythonimportredisr=redis.Redis()lock_key=f"coupon:{coupon_id}"whilenotr.set(lock_key,"locked",nx=True,ex=10):passtry:扣減庫存ifstock>0:stock-=1執(zhí)行其他操作except:r.delete(lock_key)raisefinally:r.delete(lock_key)防止超賣:-庫存預(yù)扣減,失敗則拒絕。3.答案:不丟失策略:-生產(chǎn)者:發(fā)送消息時(shí)設(shè)置`ack`,失敗重試。-Broker:持久化消息,未確認(rèn)則重發(fā)。-消費(fèi)者:消息確認(rèn)機(jī)制,失敗寫入死信隊(duì)列。積壓處理:-擴(kuò)容消費(fèi)者;-延遲處理:慢消息分批發(fā)送。五
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 39735-2020政務(wù)服務(wù)評(píng)價(jià)工作指南》專題研究報(bào)告
- 2026年鹽城幼兒師范高等??茖W(xué)校單招職業(yè)技能考試題庫及答案詳解1套
- 《藥品生物檢定技術(shù)》創(chuàng)新課件-3D藥品打印
- 早教中心裝修設(shè)計(jì)協(xié)議
- 技術(shù)質(zhì)量標(biāo)準(zhǔn)交底02《基礎(chǔ)工程》(可編輯)
- 中醫(yī)按摩技師(初級(jí))考試試卷及答案
- 2025年村官面試試題及答案
- 2025年病案編碼員資格證試題庫附含參考答案
- 2025年帶電作業(yè)技術(shù)會(huì)議:聚焦用戶無感,打造廣州特色高可靠低壓不停電作業(yè)技術(shù)應(yīng)用范式
- 遼寧省2025秋九年級(jí)英語全冊(cè)Unit3Couldyoupleasetellmewheretherestroomsare課時(shí)6SectionB(3a-SelfCheck)課件新版人教新目標(biāo)版
- 2026年遼寧生態(tài)工程職業(yè)學(xué)院單招職業(yè)適應(yīng)性考試題庫必考題
- 2026屆高考化學(xué)沖刺復(fù)習(xí)水溶液中離子平衡
- 2025年產(chǎn)業(yè)融合發(fā)展與區(qū)域經(jīng)濟(jì)一體化進(jìn)程研究可行性研究報(bào)告
- 2025年大學(xué)物聯(lián)網(wǎng)工程(傳感器技術(shù))試題及答案
- 工程部項(xiàng)目進(jìn)度監(jiān)控與風(fēng)險(xiǎn)應(yīng)對(duì)方案
- 河南省青桐鳴2026屆高三上學(xué)期第二次聯(lián)考語文試卷及參考答案
- 《國家賠償法》期末終結(jié)性考試(占總成績50%)-國開(ZJ)-參考資料
- 哈爾濱工業(yè)大學(xué)本科生畢業(yè)論文撰寫規(guī)范
- 2025年河南高二政治題庫及答案
- 七人學(xué)生小品《如此課堂》劇本臺(tái)詞手稿
- 工程項(xiàng)目質(zhì)量管理培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論