版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2026年后端工程師面試題及數(shù)據(jù)庫(kù)管理知識(shí)含答案一、編程語(yǔ)言與算法題(共5題,每題10分,總分50分)題目1(10分)請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)字符串,返回該字符串中不重復(fù)字符的最長(zhǎng)子串長(zhǎng)度。例如:輸入"abcabcbb",返回3(對(duì)應(yīng)子串"abc")。題目2(10分)給定一個(gè)包含n個(gè)元素的數(shù)組,設(shè)計(jì)一個(gè)算法找出數(shù)組中第k個(gè)最大的元素。要求時(shí)間復(fù)雜度不超過(guò)O(n)。題目3(10分)實(shí)現(xiàn)一個(gè)LRU(最近最少使用)緩存,支持get和put操作。緩存容量為capacity。當(dāng)訪問(wèn)一個(gè)鍵時(shí),如果鍵存在,則返回其值,并將其移到緩存最前面;如果鍵不存在,返回-1。題目4(10分)編寫一個(gè)函數(shù),將一個(gè)羅馬數(shù)字轉(zhuǎn)換為整數(shù)。羅馬數(shù)字包含I,V,X,L,C,D,M,分別代表1,5,10,50,100,500,1000。例如:輸入"III",返回3;輸入"IV",返回4。題目5(10分)實(shí)現(xiàn)一個(gè)二叉樹的中序遍歷,要求使用迭代方式而非遞歸方式。二、系統(tǒng)設(shè)計(jì)與架構(gòu)題(共4題,每題15分,總分60分)題目6(15分)設(shè)計(jì)一個(gè)高并發(fā)的短鏈接系統(tǒng)。要求:1.支持高并發(fā)訪問(wèn)2.鏈接轉(zhuǎn)換速度快3.易于分布式擴(kuò)展4.提供基本的訪問(wèn)統(tǒng)計(jì)功能題目7(15分)設(shè)計(jì)一個(gè)微博系統(tǒng)的用戶關(guān)注功能。要求:1.支持用戶關(guān)注/取消關(guān)注2.支持獲取關(guān)注列表和粉絲列表3.優(yōu)化大數(shù)據(jù)量下的查詢性能4.考慮系統(tǒng)可擴(kuò)展性題目8(15分)設(shè)計(jì)一個(gè)消息推送系統(tǒng)。要求:1.支持多種推送渠道(短信、AppPush)2.保證消息的可靠投遞3.支持離線推送4.提供推送統(tǒng)計(jì)功能題目9(15分)設(shè)計(jì)一個(gè)電商平臺(tái)的訂單系統(tǒng)。要求:1.支持高并發(fā)訂單創(chuàng)建2.實(shí)現(xiàn)訂單狀態(tài)管理(待支付、已支付、已發(fā)貨等)3.支持訂單查詢和分頁(yè)4.考慮系統(tǒng)容災(zāi)和一致性三、數(shù)據(jù)庫(kù)管理題(共5題,每題14分,總分70分)題目10(14分)解釋MySQL中的事務(wù)隔離級(jí)別,并說(shuō)明不同隔離級(jí)別可能出現(xiàn)的問(wèn)題(如臟讀、不可重復(fù)讀、幻讀)。題目11(14分)設(shè)計(jì)一個(gè)關(guān)系型數(shù)據(jù)庫(kù)表結(jié)構(gòu),用于存儲(chǔ)電商訂單信息。要求:1.表結(jié)構(gòu)合理2.考慮數(shù)據(jù)一致性和完整性3.說(shuō)明關(guān)鍵字段的索引設(shè)計(jì)題目12(14分)解釋數(shù)據(jù)庫(kù)索引的類型(B-Tree索引、哈希索引、全文索引等)及其適用場(chǎng)景。題目13(14分)優(yōu)化以下SQL查詢:sqlSELECTFROMordersWHEREuser_id=?ANDorder_dateBETWEEN?AND?ORDERBYorder_dateDESCLIMIT100;請(qǐng)說(shuō)明至少兩種優(yōu)化方法。題目14(14分)解釋數(shù)據(jù)庫(kù)分區(qū)(Partitioning)的概念及其優(yōu)缺點(diǎn)。在什么場(chǎng)景下推薦使用分區(qū)?答案與解析答案1(10分)pythondeflength_of_longest_substring(s:str)->int:char_set=set()left=0max_length=0forrightinrange(len(s)):whiles[right]inchar_set:char_set.remove(s[left])left+=1char_set.add(s[right])max_length=max(max_length,right-left+1)returnmax_length解析:1.使用滑動(dòng)窗口技術(shù),left和right分別表示窗口的左右邊界2.遍歷字符串時(shí),如果發(fā)現(xiàn)重復(fù)字符,則移動(dòng)left直到不重復(fù)3.每次更新最大長(zhǎng)度時(shí)間復(fù)雜度:O(n),空間復(fù)雜度:O(min(m,n)),m為字符集大小答案2(10分)pythondeffind_kth_largest(nums,k):defpartition(left,right,pivot_index):pivot_value=nums[pivot_index]nums[pivot_index],nums[right]=nums[right],nums[pivot_index]store_index=leftforiinrange(left,right):ifnums[i]>pivot_value:nums[store_index],nums[i]=nums[i],nums[store_index]store_index+=1nums[right],nums[store_index]=nums[store_index],nums[right]returnstore_indexdefselect(left,right,k_smallest):ifleft==right:returnnums[left]pivot_index=random.randint(left,right)pivot_index=partition(left,right,pivot_index)ifk_smallest==pivot_index:returnnums[k_smallest]elifk_smallest<pivot_index:returnselect(left,pivot_index-1,k_smallest)else:returnselect(pivot_index+1,right,k_smallest)returnselect(0,len(nums)-1,k-1)解析:1.使用快速選擇算法,時(shí)間復(fù)雜度平均為O(n)2.隨機(jī)選擇樞軸可以優(yōu)化最壞情況3.與快速排序的partition類似,但只處理需要的部分答案3(10分)pythonclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache=OrderedDict()defget(self,key:str)->int:ifkeynotinself.cache:return-1self.cache.move_to_end(key)returnself.cache[key]defput(self,key:str,value:int)->None:ifkeyinself.cache:self.cache.move_to_end(key)self.cache[key]=valueiflen(self.cache)>self.capacity:self.cache.popitem(last=False)解析:1.使用Python的OrderedDict實(shí)現(xiàn)LRU2.get操作時(shí)將元素移到末尾表示最近使用3.put操作時(shí)如果超出容量則刪除最早的元素答案4(10分)pythondefroman_to_int(s:str)->int:roman_values={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}total=0prev_value=0foriinrange(len(s)-1,-1,-1):current_value=roman_values[s[i]]ifcurrent_value>=prev_value:total+=current_valueelse:total-=current_valueprev_value=current_valuereturntotal解析:1.從右向左遍歷羅馬數(shù)字2.如果當(dāng)前值大于等于前一個(gè)值,則加到總和3.否則從總和減去4.時(shí)間復(fù)雜度:O(n)答案5(10分)pythondefinorder_traversal(root):ifnotroot:return[]stack,result=[],[]current=rootwhilestackorcurrent:whilecurrent:stack.append(current)current=current.leftcurrent=stack.pop()result.append(current.val)current=current.rightreturnresult解析:1.使用棧模擬遞歸2.先向左遍歷壓棧,再處理節(jié)點(diǎn)3.處理完節(jié)點(diǎn)后向右遍歷4.時(shí)間復(fù)雜度:O(n),空間復(fù)雜度:O(h),h為樹的高度答案6(15分)設(shè)計(jì)短鏈接系統(tǒng):1.核心算法:使用Base62編碼(a-z,A-Z,0-9)將長(zhǎng)URL映射為6-12位短鏈接-例如:/long/path/to/resource→/abc1232.高并發(fā)支持:-使用分布式緩存(Redis集群)存儲(chǔ)短鏈接映射關(guān)系-采用無(wú)鎖設(shè)計(jì),使用CAS操作更新緩存3.分布式擴(kuò)展:-短鏈接前綴可以按地域或業(yè)務(wù)分片-使用DNS輪詢或負(fù)載均衡器分發(fā)請(qǐng)求4.訪問(wèn)統(tǒng)計(jì):-在Redis中記錄點(diǎn)擊次數(shù)和時(shí)間戳-提供API查詢統(tǒng)計(jì)信息5.架構(gòu)圖:plaintext用戶請(qǐng)求──┐│HTTP服務(wù)器└─┘▲│Redis集群──┐│數(shù)據(jù)庫(kù)集群──┘▲│原始URL服務(wù)器答案7(15分)設(shè)計(jì)用戶關(guān)注功能:1.數(shù)據(jù)模型:sqlCREATETABLEfollows(follower_idINT,followee_idINT,created_atDATETIME,PRIMARYKEY(follower_id,followee_id),FOREIGNKEY(follower_id)REFERENCESusers(id),FOREIGNKEY(followee_id)REFERENCESusers(id));2.關(guān)注邏輯:sql--關(guān)注INSERTINTOfollows(follower_id,followee_id,created_at)VALUES(?,NOW())ONDUPLICATEKEYUPDATEcreated_at=NOW();--取消關(guān)注DELETEFROMfollowsWHEREfollower_id=?ANDfollowee_id=?3.性能優(yōu)化:-為follows表建立索引:follower_id,followee_id-使用Redis緩存用戶關(guān)注列表,使用TTL避免數(shù)據(jù)過(guò)時(shí)4.獲取關(guān)注列表:sqlSELECTu.FROMusersuJOINfollowsfONu.id=f.followee_idWHEREf.follower_id=?-對(duì)于大數(shù)據(jù)量,可采用分頁(yè)查詢和延遲加載答案8(15分)設(shè)計(jì)消息推送系統(tǒng):1.架構(gòu):plaintext應(yīng)用服務(wù)器───┐│消息隊(duì)列───┐│推送服務(wù)───┘│推送渠道───┐│用戶設(shè)備───┘2.核心組件:-消息隊(duì)列(Kafka/RabbitMQ):解耦應(yīng)用和推送服務(wù)-推送服務(wù):處理消息路由和重試-推送渠道:適配不同推送方式(APNS,FCM,短信網(wǎng)關(guān))3.可靠投遞:-消息持久化到磁盤-推送成功后ack回執(zhí)-超時(shí)重試和死信隊(duì)列4.離線推送:-用戶離線時(shí)緩存消息-App啟動(dòng)時(shí)檢查并同步-使用Token管理設(shè)備狀態(tài)答案9(15分)設(shè)計(jì)訂單系統(tǒng):1.數(shù)據(jù)模型:sqlCREATETABLEorders(idBIGINTAUTO_INCREMENTPRIMARYKEY,user_idINT,order_snVARCHAR(32)UNIQUE,total_amountDECIMAL(10,2),statusENUM('待支付','已支付','已發(fā)貨','已完成','已取消'),created_atDATETIME,updated_atDATETIME,FOREIGNKEY(user_id)REFERENCESusers(id));2.高并發(fā)創(chuàng)建:-使用分布式ID生成器-樂(lè)觀鎖處理并發(fā)更新-訂單創(chuàng)建請(qǐng)求限流3.狀態(tài)管理:sql--支付成功后更新狀態(tài)UPDATEordersSETstatus='已支付',updated_at=NOW()WHEREid=?ANDstatus='待支付';4.一致性:-使用分布式事務(wù)框架(Seata)-訂單創(chuàng)建與庫(kù)存扣減異步處理-保證狀態(tài)轉(zhuǎn)換的正確性答案10(14分)MySQL事務(wù)隔離級(jí)別:1.READUNCOMMITTED:可能出現(xiàn)臟讀(未提交數(shù)據(jù)被讀?。?.READCOMMITTED:不可重復(fù)讀(事務(wù)內(nèi)多次讀取結(jié)果不同)3.REPEATABLEREAD:幻讀(事務(wù)內(nèi)多次執(zhí)行相同查詢結(jié)果不同)4.SERIALIZABLE:完全隔離,但性能最低優(yōu)化方法:-使用合適的隔離級(jí)別平衡性能和一致性-在應(yīng)用層添加邏輯防止臟讀-使用MVCC(多版本并發(fā)控制)答案11(14分)電商訂單表設(shè)計(jì):sqlCREATETABLEorders(idBIGINTAUTO_INCREMENTPRIMARYKEY,user_idINT,order_snVARCHAR(32)UNIQUE,total_amountDECIMAL(10,2),statusENUM('待支付','已支付','已發(fā)貨','已完成','已取消'),created_atDATETIME,updated_atDATETIME,pay_timeDATETIME,ship_timeDATETIME,receive_timeDATETIME,cancel_timeDATETIME,FOREIGNKEY(user_id)REFERENCESusers(id));索引設(shè)計(jì):-主鍵索引(id)-聚合索引(user_id,created_at)-查詢優(yōu)化:為status,created_at添加索引答案12(14分)數(shù)據(jù)庫(kù)索引類型:1.B-Tree索引:最常用,適用于范圍查詢和排序-示例:
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030縣域經(jīng)濟(jì)下沉市場(chǎng)中自助洗衣服務(wù)推廣瓶頸突破策略
- 幼兒體育課程動(dòng)作要點(diǎn)指導(dǎo)
- 工程項(xiàng)目施工綠色風(fēng)險(xiǎn)評(píng)價(jià)體系構(gòu)建與實(shí)證研究
- 工程量清單計(jì)價(jià)模式下工程保險(xiǎn)費(fèi)率厘定模型的構(gòu)建與應(yīng)用研究
- 川西亞高山森林兩種建群種繁衍機(jī)制解析:結(jié)實(shí)、萌發(fā)與定植的多維度探究
- 湖北省黃岡、華師大附中等八校2026屆高三上數(shù)學(xué)期末聯(lián)考模擬試題含解析
- 2026屆北京市101中學(xué)生物高三第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 上海市盧灣高級(jí)中學(xué)2026屆生物高三上期末綜合測(cè)試試題含解析
- 2026屆河南省信陽(yáng)市普通高中高三英語(yǔ)第一學(xué)期期末檢測(cè)模擬試題含解析
- 湖南省永州市祁陽(yáng)縣第一中學(xué)2026屆高三數(shù)學(xué)第一學(xué)期期末調(diào)研試題含解析
- 現(xiàn)場(chǎng)應(yīng)急處置方案
- 2025年1月新疆普通高中學(xué)業(yè)水平考試物理試卷
- 2026年上半年新疆中小學(xué)教師資格考試(筆試)備考題庫(kù)(真題匯編)
- 2025-2026學(xué)年度第一學(xué)期期末測(cè)試三年級(jí)語(yǔ)文試卷
- 爐渣資源化處理技術(shù)方案
- 騎馬戶外免責(zé)協(xié)議書
- 2025年吐魯番地區(qū)托克遜縣輔警招聘考試題庫(kù)附答案解析
- 配電一二次融合技術(shù)的發(fā)展應(yīng)用
- 鋼板鋪設(shè)安全施工方案
- 八年級(jí)物理上冊(cè)期末測(cè)試試卷-附帶答案
- 硬件設(shè)計(jì)與可靠性
評(píng)論
0/150
提交評(píng)論