版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2026年互聯(lián)網(wǎng)大廠軟件開發(fā)崗位面試題精講一、編程基礎(chǔ)與算法(共5題,每題15分,總分75分)1.題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)非負(fù)整數(shù)`n`,返回其二進(jìn)制表示中`1`的個(gè)數(shù)。例如,輸入`11`(二進(jìn)制為`1011`),返回`3`。2.題目:給定一個(gè)字符串`s`,請(qǐng)判斷它是否是一個(gè)有效的括號(hào)字符串(只包含`'('`和`')'`,且括號(hào)匹配)。例如,輸入`"()[]{}"`,返回`true`;輸入`"(]"`,返回`false`。3.題目:設(shè)計(jì)一個(gè)LRU(最近最少使用)緩存,支持`get`和`put`操作。`get(key)`返回鍵對(duì)應(yīng)的值,如果不存在返回`-1`;`put(key,value)`插入或更新鍵值對(duì),如果緩存已滿,則刪除最久未使用的項(xiàng)。4.題目:給定一個(gè)未排序的整數(shù)數(shù)組,請(qǐng)實(shí)現(xiàn)`topKFrequent(nums,k)`,返回出現(xiàn)頻率最高的`k`個(gè)元素。例如,輸入`[1,1,1,2,2,3]`和`k=2`,返回`[1,2]`。5.題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),檢查一個(gè)鏈表是否包含環(huán)。如果存在環(huán),返回`true`;否則返回`false`。答案與解析1.二進(jìn)制中`1`的個(gè)數(shù)答案:pythondefcount_bits(n):count=0whilen:count+=n&1n>>=1returncount解析:使用位運(yùn)算,每次判斷`n`的最低位是否為`1`(`n&1`),然后右移一位(`n>>=1`)。時(shí)間復(fù)雜度`O(logn)`。2.有效的括號(hào)字符串答案:pythondefisValid(s):stack=[]mapping={')':'(','}':'{',']':'['}forcharins:ifcharinmapping:top=stack.pop()ifstackelse'#'ifmapping[char]!=top:returnFalseelse:stack.append(char)returnnotstack解析:使用棧,遍歷字符串,遇到右括號(hào)時(shí)檢查棧頂是否匹配。時(shí)間復(fù)雜度`O(n)`。3.LRU緩存答案:pythonclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache={}self.order=[]defget(self,key:int)->int:ifkeyinself.cache:self.order.remove(key)self.order.append(key)returnself.cache[key]return-1defput(self,key:int,value:int)->None:ifkeyinself.cache:self.order.remove(key)eliflen(self.cache)==self.capacity:self.cache.pop(self.order.pop(0))self.cache[key]=valueself.order.append(key)解析:使用字典存儲(chǔ)鍵值對(duì),列表維護(hù)訪問(wèn)順序。`get`時(shí)移動(dòng)鍵到末尾,`put`時(shí)先刪除最久未使用項(xiàng)(如果滿)。4.頻率最高的k個(gè)元素答案:pythonfromcollectionsimportCounterdeftopKFrequent(nums,k):count=Counter(nums)return[numfornum,_incount.most_common(k)]解析:使用`Counter`統(tǒng)計(jì)頻率,`most_common(k)`返回頻率最高的`k`個(gè)元素。5.檢查鏈表環(huán)答案:pythonclassListNode:def__init__(self,x):self.val=xself.next=NonedefhasCycle(head:ListNode)->bool:slow,fast=head,headwhilefastandfast.next:slow=slow.nextfast=fast.next.nextifslow==fast:returnTruereturnFalse解析:快慢指針,如果存在環(huán),快指針會(huì)追上慢指針。時(shí)間復(fù)雜度`O(n)`。二、系統(tǒng)設(shè)計(jì)(共3題,每題25分,總分75分)1.題目:設(shè)計(jì)一個(gè)高并發(fā)的短鏈接系統(tǒng)。輸入長(zhǎng)鏈接,輸出短鏈接;訪問(wèn)短鏈接時(shí)解析為長(zhǎng)鏈接。2.題目:設(shè)計(jì)一個(gè)微博系統(tǒng),支持用戶發(fā)布、關(guān)注、點(diǎn)贊、獲取時(shí)間線等功能。要求說(shuō)明數(shù)據(jù)結(jié)構(gòu)、接口設(shè)計(jì)及擴(kuò)展性。3.題目:設(shè)計(jì)一個(gè)分布式限流系統(tǒng),支持全局限流(如每秒1000次請(qǐng)求),并要求低延遲和高可用。答案與解析1.短鏈接系統(tǒng)答案:-數(shù)據(jù)結(jié)構(gòu):-使用`hash`函數(shù)將長(zhǎng)鏈接映射為短鏈接(如`6位隨機(jī)字母`),存儲(chǔ)在內(nèi)存(Redis)中。-關(guān)聯(lián)關(guān)系:短鏈接→長(zhǎng)鏈接(數(shù)據(jù)庫(kù)或Redis)。-接口設(shè)計(jì):httpPOST/shorten?url=LONG_URL→返回SHORT_URLGET/{SHORT_URL}→返回LONG_URL-擴(kuò)展性:-使用分布式`hash`函數(shù)(如Ketama)避免沖突。-監(jiān)控短鏈接命中率,定期清理無(wú)效鏈接。2.微博系統(tǒng)答案:-數(shù)據(jù)結(jié)構(gòu):-用戶:`users`表(`id`,`name`,`follows`)。-微博:`tweets`表(`id`,`user_id`,`content`,`time`)。-關(guān)注關(guān)系:`follows`表(`follower_id`,`followee_id`)。-接口設(shè)計(jì):httpPOST/tweets→發(fā)布微博POST/follow/{user_id}→關(guān)注用戶GET/timeline/{user_id}→獲取時(shí)間線(分頁(yè)+關(guān)注關(guān)系)GET/like/{tweet_id}→點(diǎn)贊微博-擴(kuò)展性:-微博分頁(yè)加載(Redis緩存熱門用戶)。-實(shí)時(shí)推送:WebSocket或MQ(如Kafka)。3.分布式限流系統(tǒng)答案:-方案:-使用Redis的`RateLimiter`(令牌桶算法)。-每個(gè)請(qǐng)求分配`token`,每秒生成1000個(gè)`token`。-實(shí)現(xiàn):httpGET/rate_limit→檢查token-高可用:-Redis集群部署。-超時(shí)處理:請(qǐng)求失敗自動(dòng)重試(如`2次/30s`)。三、數(shù)據(jù)庫(kù)與存儲(chǔ)(共3題,每題25分,總分75分)1.題目:設(shè)計(jì)一個(gè)電商訂單表,包含訂單號(hào)、用戶ID、商品ID、數(shù)量、金額、下單時(shí)間等字段,并說(shuō)明索引設(shè)計(jì)。2.題目:為什么數(shù)據(jù)庫(kù)需要主鍵?如果使用自增ID,會(huì)有什么問(wèn)題?3.題目:設(shè)計(jì)一個(gè)消息隊(duì)列系統(tǒng),支持消息發(fā)布、訂閱、延遲消息和重試機(jī)制。答案與解析1.電商訂單表設(shè)計(jì)答案:-字段:sqlCREATETABLEorders(idBIGINTAUTO_INCREMENTPRIMARYKEY,user_idBIGINT,product_idBIGINT,quantityINT,amountDECIMAL(10,2),order_timeTIMESTAMPDEFAULTCURRENT_TIMESTAMP,FOREIGNKEY(user_id)REFERENCESusers(id),FOREIGNKEY(product_id)REFERENCESproducts(id));-索引設(shè)計(jì):-主鍵索引(`id`)。-聚合索引(`user_id`,`order_time`)用于查詢用戶訂單。-分區(qū)索引(按`order_time`分月)。2.主鍵與自增ID問(wèn)題答案:-主鍵作用:-唯一標(biāo)識(shí)記錄。-加速JOIN操作。-自增ID問(wèn)題:-高并發(fā)下可能超限。-容易泄露業(yè)務(wù)邏輯(如訂單號(hào))。-分庫(kù)分表時(shí)可能不適用。3.消息隊(duì)列系統(tǒng)設(shè)計(jì)答案:-數(shù)據(jù)結(jié)構(gòu):-消息:`messages`(`id`,`topic`,`payload`,`delay_time`,`status`)。-訂閱:`subscriptions`(`topic`,`consumer_id`)。-功能實(shí)現(xiàn):-發(fā)布:寫入`messages`,設(shè)置延遲時(shí)間(如使用RedisTTL)。-訂閱:輪詢`messages`,匹配`subscriptions`。-重試:失敗消息標(biāo)記,定時(shí)重發(fā)。四、網(wǎng)絡(luò)與分布式(共3題,每題25分,總分75分)1.題目:簡(jiǎn)述TCP三次握手和四次揮手過(guò)程,并說(shuō)明為什么需要重傳機(jī)制?2.題目:設(shè)計(jì)一個(gè)分布式事務(wù)解決方案,支持“兩階段提交”(2PC)或“本地消息表”。3.題題:如何優(yōu)化分布式緩存的命中率?答案與解析1.TCP握手與揮手答案:-三次握手:1.客戶端發(fā)送SYN=1,等待服務(wù)器確認(rèn)。2.服務(wù)器發(fā)送SYN=1,ACK=1,等待客戶端確認(rèn)。3.客戶端發(fā)送ACK=1。-四次揮手:1.客戶端發(fā)送FIN=1,進(jìn)入`FIN_WAIT_1`。2.服務(wù)器發(fā)送ACK=1,進(jìn)入`CLOSE_WAIT`。3.服務(wù)器發(fā)送FIN=1,進(jìn)入`LAST_ACK`。4.客戶端發(fā)送ACK=1,進(jìn)入`TIME_WAIT`后關(guān)閉。-重傳機(jī)制:-可靠傳輸需要超時(shí)重傳(ACK丟失時(shí))。2.分布式事務(wù)答案:-2PC:1.準(zhǔn)備階段:協(xié)調(diào)者詢問(wèn)所有參
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳品發(fā)酵工崗前崗中水平考核試卷含答案
- 金箔制作工崗前理論評(píng)估考核試卷含答案
- 海底管道防腐工安全檢查測(cè)試考核試卷含答案
- 織布上軸工持續(xù)改進(jìn)評(píng)優(yōu)考核試卷含答案
- 2025年橡膠板、桿、型材合作協(xié)議書
- 大學(xué)活動(dòng)請(qǐng)假條格式
- 2026年生物多樣性互動(dòng)展覽項(xiàng)目可行性研究報(bào)告
- 2026年迷你綠植盆栽項(xiàng)目評(píng)估報(bào)告
- 環(huán)境監(jiān)理培訓(xùn)課件
- 2025年書法級(jí)考試題庫(kù)及答案
- TGDGX 0003-2024 高校物業(yè)服務(wù)費(fèi)用測(cè)算及基本人員配置規(guī)范
- JJF(機(jī)械) 1064-2021 運(yùn)動(dòng)場(chǎng)地材料沖擊吸收和垂直變形試驗(yàn)機(jī)校準(zhǔn)規(guī)范
- T CEC站用低壓交流電源系統(tǒng)剩余電流監(jiān)測(cè)裝置技術(shù)規(guī)范
- 個(gè)人工傷申請(qǐng)書
- 工程竣工移交單
- 起重機(jī)焊接結(jié)構(gòu)件制造工藝規(guī)程
- “振興杯”職業(yè)技能競(jìng)賽(維修電工)備賽試題庫(kù) (單選、多選題匯總)
- GB/T 25689-2010土方機(jī)械自卸車車廂容量標(biāo)定
- 攝像機(jī)外觀檢驗(yàn)標(biāo)準(zhǔn)
- 航標(biāo)和航標(biāo)配布專題培訓(xùn)課件
- 學(xué)習(xí)課件所有內(nèi)容歸類到此-etops運(yùn)行手冊(cè)
評(píng)論
0/150
提交評(píng)論