版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2026年美團(tuán)技術(shù)部面試題庫(kù)及答案詳解一、編程題(共5題,每題15分,總分75分)1.題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)鏈表,反轉(zhuǎn)鏈表后返回反轉(zhuǎn)后的鏈表。鏈表節(jié)點(diǎn)定義如下:pythonclassListNode:def__init__(self,val=0,next=None):self.val=valself.next=next示例輸入:`[1,2,3,4,5]`示例輸出:`[5,4,3,2,1]`答案:pythondefreverseList(head:ListNode)->ListNode:prev=Nonecurrent=headwhilecurrent:next_node=current.next#保存下一個(gè)節(jié)點(diǎn)current.next=prev#反轉(zhuǎn)當(dāng)前節(jié)點(diǎn)的指針prev=current#移動(dòng)prev到當(dāng)前節(jié)點(diǎn)current=next_node#移動(dòng)current到下一個(gè)節(jié)點(diǎn)returnprev解析:反轉(zhuǎn)鏈表采用迭代法,通過(guò)三個(gè)指針`prev`、`current`和`next_node`實(shí)現(xiàn)。初始時(shí)`prev`為`None`,`current`為頭節(jié)點(diǎn)。每次循環(huán)中,先保存`current.next`(即`next_node`),然后反轉(zhuǎn)`current.next`指向`prev`,最后移動(dòng)`prev`和`current`到下一個(gè)節(jié)點(diǎn)。循環(huán)結(jié)束后,`prev`即為反轉(zhuǎn)后的頭節(jié)點(diǎn)。2.題目:給定一個(gè)包含非負(fù)整數(shù)的數(shù)組,你的任務(wù)是統(tǒng)計(jì)其中所有奇數(shù)數(shù)字的平均值。如果數(shù)組中奇數(shù)的數(shù)量為0,則返回0。示例輸入:`[1,2,3,4,5]`示例輸出:`3.0`答案:pythondefaverageOfOdds(nums):total=0count=0fornuminnums:ifnum%2!=0:total+=numcount+=1returntotal/countifcount!=0else0解析:遍歷數(shù)組,統(tǒng)計(jì)奇數(shù)的總和和數(shù)量。如果奇數(shù)數(shù)量為0,直接返回0;否則返回總和除以數(shù)量。時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。3.題目:實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)字符串,返回該字符串的最長(zhǎng)回文子串的長(zhǎng)度。示例輸入:`"babad"`示例輸出:`3`("bab"或"aba")答案:pythondeflongestPalindrome(s:str)->int:n=len(s)ifn==0:return0dp=[[False]nfor_inrange(n)]max_len=1foriinrange(n):dp[i][i]=Trueforiinrange(n-1):ifs[i]==s[i+1]:dp[i][i+1]=Truemax_len=2forlengthinrange(3,n+1):foriinrange(n-length+1):j=i+length-1ifs[i]==s[j]anddp[i+1][j-1]:dp[i][j]=Truemax_len=lengthreturnmax_len解析:使用動(dòng)態(tài)規(guī)劃法。`dp[i][j]`表示子串`s[i:j+1]`是否為回文。初始時(shí)單個(gè)字符都是回文,兩字符相同也為回文。對(duì)于長(zhǎng)度大于2的子串,如果`s[i]==s[j]`且`s[i+1:j]`為回文,則`s[i:j]`為回文。遍歷所有可能的子串長(zhǎng)度,記錄最長(zhǎng)回文子串的長(zhǎng)度。4.題目:實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)整數(shù)數(shù)組,返回該數(shù)組的中位數(shù)。示例輸入:`[3,1,2,4,5]`示例輸出:`3.0`答案:pythondeffindMedianSortedArrays(nums1,nums2):merged=sorted(nums1+nums2)n=len(merged)ifn%2==0:return(merged[n//2-1]+merged[n//2])/2else:returnmerged[n//2]解析:合并兩個(gè)已排序數(shù)組,然后根據(jù)合并后數(shù)組的長(zhǎng)度計(jì)算中位數(shù)。如果長(zhǎng)度為偶數(shù),取中間兩個(gè)數(shù)的平均值;否則取中間數(shù)。時(shí)間復(fù)雜度O(nlogn),空間復(fù)雜度O(n)。5.題目:實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)字符串,判斷該字符串是否為有效的括號(hào)組合(只考慮`()`、`[]`、`{}`)。示例輸入:`"()[]{}"`示例輸出:`True`答案:pythondefisValid(s:str)->bool:stack=[]mapping={')':'(',']':'[','}':'{'}forcharins:ifcharinmapping:top_element=stack.pop()ifstackelse'#'ifmapping[char]!=top_element:returnFalseelse:stack.append(char)returnnotstack解析:使用棧結(jié)構(gòu),遍歷字符串。對(duì)于每個(gè)字符,如果是右括號(hào),檢查棧頂是否為對(duì)應(yīng)的左括號(hào);否則將字符入棧。最后如果棧為空,則有效。時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(n)。二、系統(tǒng)設(shè)計(jì)題(共3題,每題25分,總分75分)1.題目:設(shè)計(jì)一個(gè)高并發(fā)的短鏈接系統(tǒng)。要求:1.輸入任意長(zhǎng)度的URL,輸出固定長(zhǎng)度的短鏈接。2.支持高并發(fā)訪問(wèn)和快速跳轉(zhuǎn)。3.支持鏈路追蹤(如點(diǎn)擊統(tǒng)計(jì))。答案:系統(tǒng)架構(gòu):1.短鏈接生成:-使用自增ID或隨機(jī)算法生成唯一標(biāo)識(shí)(如62進(jìn)制編碼,如`aV3f7`)。-緩存常用操作,避免頻繁數(shù)據(jù)庫(kù)寫入。2.高并發(fā)支持:-前端使用分布式緩存(如RedisCluster)存儲(chǔ)短鏈接與長(zhǎng)鏈接的映射,分片存儲(chǔ)。-后端使用負(fù)載均衡(如Nginx+LVS)分發(fā)請(qǐng)求。3.鏈路追蹤:-使用Redis或MySQL記錄點(diǎn)擊日志,包含時(shí)間戳、IP、User-Agent等。-實(shí)時(shí)統(tǒng)計(jì)接口,返回統(tǒng)計(jì)結(jié)果。偽代碼:python生成短鏈接defgenerate_short_url(long_url):id=generate_unique_id()#62進(jìn)制編碼short_url=f"/{id}"cache.set(id,long_url)#緩存映射returnshort_url跳轉(zhuǎn)長(zhǎng)鏈接defredirect_to_long_url(short_url):id=short_url.split('/')[-1]long_url=cache.get(id)ifnotlong_url:long_url=db.get(id)#查數(shù)據(jù)庫(kù)iflong_url:log_click(id)#記錄點(diǎn)擊returnlong_urlreturn"URLnotfound"解析:短鏈接系統(tǒng)核心在于高效生成和解析,同時(shí)保證高并發(fā)和可追蹤性。采用緩存+數(shù)據(jù)庫(kù)兩級(jí)存儲(chǔ),前端負(fù)載均衡,后端鏈路追蹤日志,確保系統(tǒng)可用性和擴(kuò)展性。2.題目:設(shè)計(jì)一個(gè)實(shí)時(shí)新聞推薦系統(tǒng),要求:1.用戶閱讀新聞后可反饋(喜歡/不喜歡)。2.根據(jù)用戶行為動(dòng)態(tài)調(diào)整推薦順序。3.支持實(shí)時(shí)更新和低延遲推薦。答案:系統(tǒng)架構(gòu):1.數(shù)據(jù)采集:-用戶行為(閱讀、點(diǎn)贊、分享)實(shí)時(shí)寫入Kafka,接入Flink或SparkStreaming處理。2.推薦邏輯:-協(xié)同過(guò)濾(基于用戶/新聞相似度)。-內(nèi)容推薦(根據(jù)新聞特征向量)。-實(shí)時(shí)因子(用戶近期行為權(quán)重更高)。3.存儲(chǔ)與分發(fā):-用戶畫像存入Redis,推薦結(jié)果存入Memcached。-推送服務(wù)(如MQTT)實(shí)時(shí)下發(fā)推薦。偽代碼:python用戶行為處理defprocess_user_behavior(user_id,news_id,action):log_action(user_id,news_id,action)#寫入Kafkaupdate_user_profile(user_id)#更新用戶畫像實(shí)時(shí)推薦defget_realtime_recommendations(user_id):profile=redis.get(user_id)recommendations=recommend_system(profile)#調(diào)用推薦引擎returnrecommendations解析:實(shí)時(shí)推薦系統(tǒng)需要結(jié)合用戶行為和新聞特征,采用流式計(jì)算實(shí)時(shí)更新用戶畫像,結(jié)合多種推薦算法(協(xié)同過(guò)濾+內(nèi)容推薦)實(shí)現(xiàn)精準(zhǔn)推薦。通過(guò)緩存和消息隊(duì)列保證低延遲和高可用性。3.題目:設(shè)計(jì)一個(gè)高并發(fā)的秒殺系統(tǒng)。要求:1.支持秒殺商品數(shù)量限制。2.防止超賣和重復(fù)購(gòu)買。3.用戶體驗(yàn)流暢(避免秒殺失?。?。答案:系統(tǒng)架構(gòu):1.庫(kù)存控制:-使用Redis分布式鎖或Lua腳本原子扣減庫(kù)存。-庫(kù)存超限時(shí)直接返回失敗。2.訂單生成:-使用消息隊(duì)列(如RabbitMQ)異步處理訂單,避免超賣。-訂單狀態(tài)(待支付/已支付)用Redis或數(shù)據(jù)庫(kù)記錄。3.防作弊:-限制用戶頻率(如1分鐘內(nèi)限購(gòu)1次)。-驗(yàn)證碼+驗(yàn)證手機(jī)號(hào)減少惡意購(gòu)買。偽代碼:python秒殺邏輯def秒殺(user_id,goods_id):lock=redis.setnx(f"lock:{goods_id}",1,nx=True,ex=10)ifnotlock:return"系統(tǒng)繁忙"stock=redis.decr(f"stock:{goods_id}")ifstock<0:redis.incr(f"stock:{goods_id}")return"庫(kù)存不足"create_order(user_id,goods_id)#異步生成訂單return"秒殺成功"解析:秒殺系統(tǒng)核心在于庫(kù)存原子扣減和訂單異步處理。使用分布式鎖+Redis原子操作保證庫(kù)存準(zhǔn)確性,消息隊(duì)列解耦訂單生成,驗(yàn)證碼+頻率限制防止作弊,確保系統(tǒng)穩(wěn)定性和用戶體驗(yàn)。三、數(shù)據(jù)庫(kù)題(共2題,每題20分,總分40分)1.題目:設(shè)計(jì)一個(gè)電商訂單表,包含以下字段:-`order_id`(訂單ID)、`user_id`(用戶ID)、`goods_id`(商品ID)、`quantity`(數(shù)量)、`price`(單價(jià))、`total_price`(總價(jià))、`status`(訂單狀態(tài))、`create_time`(創(chuàng)建時(shí)間)。要求:1.如何保證訂單ID的唯一性?2.如何優(yōu)化查詢訂單列表(按用戶ID分頁(yè))?答案:表設(shè)計(jì):sqlCREATETABLEorders(order_idBIGINTAUTO_INCREMENTPRIMARYKEY,user_idBIGINTNOTNULL,goods_idBIGINTNOTNULL,quantityINTNOTNULL,priceDECIMAL(10,2)NOTNULL,total_priceDECIMAL(10,2)NOTNULL,statusTINYINTNOTNULLDEFAULT0,--0待支付,1已支付等create_timeTIMESTAMPDEFAULTCURRENT_TIMESTAMP,INDEXidx_user_id(user_id),FOREIGNKEY(user_id)REFERENCESusers(user_id),FOREIGNKEY(goods_id)REFERENCESgoods(goods_id));解答:1.訂單ID唯一性:使用`AUTO_INCREMENT`或`SERIAL`生成自增ID,保證唯一性。2.優(yōu)化查詢:-為`user_id`創(chuàng)建索引`idx_user_id`。-使用`LIMIToffset,count`分頁(yè)。-考慮緩存熱門用戶訂單(如Redis)。解析:訂單表設(shè)計(jì)需保證唯一性、高查詢效率和事務(wù)一致性。自增ID確保ID唯一,索引優(yōu)化分頁(yè)查詢,外鍵約束保證數(shù)據(jù)完整性。緩存可提升熱用戶查詢性能。2.題目:假設(shè)訂單表數(shù)據(jù)量巨大,如何優(yōu)化以下查詢:sqlSELECTuser_id,SUM(total_price)AStotal_spentFROMordersWHEREstatus=1GROUPBYuser_idORDERBYtotal_spentDESCLIMIT10;答案:優(yōu)化方案:1.物化視圖:-定期計(jì)算并存儲(chǔ)每個(gè)用戶的總消費(fèi)(如每天凌晨跑批)。sqlCREATETABLEuser_spent(user_idBIGINTPRIMARYKEY,total_spentDECIMAL(10,2)NOTNULL);2.實(shí)時(shí)更新:-訂單支付后實(shí)時(shí)更新`user_spent`表(如使用觸發(fā)器或消息隊(duì)列)。3.查詢優(yōu)化:-直接查詢`user_spent`表,避免全表計(jì)算。sqlSELECTuser_id,total_spentFROMuser_spentORDERBYtotal_spentDESCLIMIT10;解析:大數(shù)據(jù)量查詢優(yōu)化核心是避免全表掃描。物化視圖存儲(chǔ)計(jì)算結(jié)果,實(shí)時(shí)更新保證數(shù)據(jù)新鮮度,直接
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)議紀(jì)律與秩序維護(hù)制度
- 2026年網(wǎng)絡(luò)攻擊防范策略實(shí)戰(zhàn)練習(xí)題
- 2026年地理學(xué)知識(shí)考試題庫(kù)及正確答案詳解
- 2026年公共管理基礎(chǔ)知識(shí)與實(shí)務(wù)操作能力考試預(yù)測(cè)模擬題
- 2026年建筑師考試專業(yè)基礎(chǔ)題庫(kù)與答案詳解
- 2026年證券從業(yè)考試投資分析策略與實(shí)踐題庫(kù)
- 2026年新版副產(chǎn)品協(xié)議
- 檢驗(yàn)科檢驗(yàn)報(bào)告丟失的補(bǔ)辦處理流程及制度
- 2025 小學(xué)六年級(jí)科學(xué)上冊(cè)螞蟻群體分工行為觀察記錄課件
- 2025年陜西航空職業(yè)技術(shù)學(xué)院馬克思主義基本原理概論期末考試模擬題含答案解析(奪冠)
- 八年級(jí)地理上冊(cè)《中國(guó)的氣候》探究式教學(xué)設(shè)計(jì)
- 重慶市2026年高一(上)期末聯(lián)合檢測(cè)(康德卷)化學(xué)+答案
- 2026年湖南郴州市百??毓杉瘓F(tuán)有限公司招聘9人備考考試題庫(kù)及答案解析
- 2026貴州黔東南州公安局面向社會(huì)招聘警務(wù)輔助人員37人考試備考題庫(kù)及答案解析
- 2026年數(shù)字化管理專家認(rèn)證題庫(kù)200道及完整答案(全優(yōu))
- 鐵路除草作業(yè)方案范本
- 2026屆江蘇省常州市生物高一第一學(xué)期期末檢測(cè)試題含解析
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)高溫工業(yè)熱泵行業(yè)市場(chǎng)運(yùn)行態(tài)勢(shì)與投資戰(zhàn)略咨詢報(bào)告
- 教培機(jī)構(gòu)排課制度規(guī)范
- 2026年檢視問(wèn)題清單與整改措施(2篇)
- 國(guó)家開放大學(xué)《基礎(chǔ)教育課程改革專題》形考任務(wù)(1-3)試題及答案解析
評(píng)論
0/150
提交評(píng)論