版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2026年騰訊程序員招聘筆試題集一、編程基礎(chǔ)(共5題,每題6分,總計(jì)30分)1.數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)非負(fù)整數(shù)數(shù)組`nums`,返回其中和為`target`的兩個(gè)數(shù)的下標(biāo)。你可以假設(shè)每個(gè)輸入都只有一個(gè)解,且不能重復(fù)使用同一個(gè)元素。示例:輸入:`nums=[2,7,11,15]`,`target=9`輸出:`[0,1]`(因?yàn)閌nums[0]+nums[1]=2+7=9`)答案:pythondeftwo_sum(nums,target):num_to_index={}fori,numinenumerate(nums):complement=target-numifcomplementinnum_to_index:return[num_to_index[complement],i]num_to_index[num]=ireturn[]解析:使用哈希表(字典)記錄每個(gè)元素及其索引,遍歷數(shù)組時(shí)檢查`target-num`是否已存在于哈希表中,若存在則返回對(duì)應(yīng)索引,時(shí)間復(fù)雜度為O(n)。2.字符串處理題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的所有大寫字母轉(zhuǎn)換為小寫字母,所有小寫字母轉(zhuǎn)換為大寫字母,其余字符保持不變。示例:輸入:`"HelloWorld!"`輸出:`"hELLOwORLD!"`答案:pythondefswap_case(s):return''.join([char.lower()ifchar.isupper()elsechar.upper()forcharins])解析:通過(guò)列表推導(dǎo)式遍歷字符串,對(duì)每個(gè)字符判斷其大小寫并轉(zhuǎn)換,最后用`''.join()`拼接成新字符串。3.數(shù)組排序與查找題目:給定一個(gè)排序數(shù)組`nums`,請(qǐng)實(shí)現(xiàn)二分查找算法,返回目標(biāo)值`target`的下標(biāo)。若不存在,則返回`-1`。示例:輸入:`nums=[-1,0,3,5,9,12]`,`target=9`輸出:`4`答案:pythondefbinary_search(nums,target):left,right=0,len(nums)-1whileleft<=right:mid=(left+right)//2ifnums[mid]==target:returnmidelifnums[mid]<target:left=mid+1else:right=mid-1return-1解析:二分查找的核心是不斷縮小查找范圍,通過(guò)比較中間值與目標(biāo)值調(diào)整左右指針,時(shí)間復(fù)雜度為O(logn)。4.動(dòng)態(tài)規(guī)劃題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),計(jì)算不同路徑的數(shù)量,即從左上角到右下角的不同路徑總數(shù),每次只能向下或向右移動(dòng)。示例:輸入:`m=3`,`n=2`輸出:`3`(路徑為:右→右→下,右→下→右,下→右→右)答案:pythondefunique_paths(m,n):dp=[[0]nfor_inrange(m)]foriinrange(m):dp[i][0]=1forjinrange(n):dp[0][j]=1foriinrange(1,m):forjinrange(1,n):dp[i][j]=dp[i-1][j]+dp[i][j-1]returndp[m-1][n-1]解析:使用動(dòng)態(tài)規(guī)劃填充二維數(shù)組,每一步路徑數(shù)為上方和左方路徑之和,邊界條件為第一行和第一列為1。5.棧與遞歸題目:請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),檢查括號(hào)字符串是否有效,其中括號(hào)類型包括`()`、`[]`、`{}`。示例:輸入:`"()"`輸出:`True`輸入:`"([)]"`輸出:`False`答案:pythondefisValid(s):stack=[]mapping={')':'(',']':'[','}':'{'}forcharins:ifcharinmapping:top_element=stack.pop()ifstackelse'#'ifmapping[char]!=top_element:returnFalseelse:stack.append(char)returnnotstack解析:使用棧匹配括號(hào),遍歷字符串時(shí)遇到右括號(hào)則與棧頂元素比較,若不匹配則無(wú)效;若為左括號(hào)則入棧,最后棧為空則有效。二、系統(tǒng)設(shè)計(jì)(共3題,每題10分,總計(jì)30分)1.分布式系統(tǒng)設(shè)計(jì)題目:假設(shè)騰訊需要設(shè)計(jì)一個(gè)高并發(fā)的短鏈接服務(wù)(如``),請(qǐng)簡(jiǎn)述其核心設(shè)計(jì)思路,包括但不限于數(shù)據(jù)存儲(chǔ)、請(qǐng)求分發(fā)、緩存策略等。答案:1.數(shù)據(jù)存儲(chǔ):使用分布式數(shù)據(jù)庫(kù)(如TencentDB或RedisCluster)存儲(chǔ)短鏈接與長(zhǎng)鏈接的映射關(guān)系,確保高可用和快速讀寫。2.請(qǐng)求分發(fā):通過(guò)負(fù)載均衡(如LVS或Nginx)將請(qǐng)求分發(fā)到多個(gè)后端服務(wù),每個(gè)服務(wù)獨(dú)立處理請(qǐng)求。3.緩存策略:使用本地緩存(如Memcached)緩存熱點(diǎn)短鏈接,減少數(shù)據(jù)庫(kù)訪問(wèn);全局緩存(如CDN)加速熱點(diǎn)鏈接的解析。4.URL生成:采用Base62編碼(如`aGVsbG8=`對(duì)應(yīng)`Hello`)生成短鏈接,降低存儲(chǔ)空間消耗。5.監(jiān)控與容錯(cuò):實(shí)時(shí)監(jiān)控服務(wù)狀態(tài),通過(guò)熔斷機(jī)制防止雪崩,定期校驗(yàn)短鏈接有效性。解析:短鏈接服務(wù)核心在于高性能和分布式擴(kuò)展,需結(jié)合騰訊的技術(shù)棧(如自研數(shù)據(jù)庫(kù)、CDN)設(shè)計(jì),兼顧可用性與成本。2.微服務(wù)架構(gòu)題目:假設(shè)騰訊QQ需要支持多平臺(tái)(PC、移動(dòng)端、小程序)用戶登錄,請(qǐng)?jiān)O(shè)計(jì)一個(gè)微服務(wù)架構(gòu)方案,包括服務(wù)拆分、認(rèn)證流程、跨平臺(tái)同步等。答案:1.服務(wù)拆分:拆分為`User-Auth`(認(rèn)證)、`User-Profile`(用戶信息)、`Session-Manager`(會(huì)話管理)等微服務(wù)。2.認(rèn)證流程:采用OAuth2+JWT,支持手機(jī)號(hào)/郵箱登錄,各平臺(tái)通過(guò)`User-Auth`統(tǒng)一校驗(yàn)憑證。3.跨平臺(tái)同步:通過(guò)WebSocket或消息隊(duì)列(如Kafka)實(shí)現(xiàn)多端會(huì)話同步,如登錄狀態(tài)變更實(shí)時(shí)推送到其他設(shè)備。4.數(shù)據(jù)一致性:使用分布式事務(wù)(如RocketMQ事務(wù)消息)保證用戶信息變更的最終一致性。解析:微服務(wù)架構(gòu)需解決多平臺(tái)協(xié)同問(wèn)題,騰訊體系內(nèi)可利用自研中間件(如RocketMQ、TDSW)確保高可用和一致性。3.高并發(fā)秒殺系統(tǒng)題目:假設(shè)騰訊舉辦大型活動(dòng)(如雙十一)需要設(shè)計(jì)秒殺系統(tǒng),請(qǐng)說(shuō)明如何防止超賣和秒殺失敗,并簡(jiǎn)述限流策略。答案:1.防止超賣:使用分布式鎖(如Redisson)或數(shù)據(jù)庫(kù)樂觀鎖(行級(jí)鎖)確保同一商品被搶購(gòu)時(shí)只減庫(kù)存一次。2.秒殺失敗處理:客戶端通過(guò)簽名機(jī)制防止重復(fù)提交,服務(wù)端設(shè)置冪等性接口(如記錄請(qǐng)求ID)。3.限流策略:采用令牌桶算法(如QPS限制),結(jié)合熔斷器(如Hystrix)防止服務(wù)雪崩。4.庫(kù)存預(yù)熱:提前通過(guò)定時(shí)任務(wù)將秒殺庫(kù)存寫入Redis緩存,減少數(shù)據(jù)庫(kù)壓力。解析:秒殺系統(tǒng)需解決并發(fā)沖突和系統(tǒng)穩(wěn)定性問(wèn)題,騰訊可利用自研中間件和數(shù)據(jù)庫(kù)優(yōu)化方案實(shí)現(xiàn)。三、數(shù)據(jù)庫(kù)與存儲(chǔ)(共4題,每題7.5分,總計(jì)30分)1.SQL查詢優(yōu)化題目:假設(shè)騰訊新聞數(shù)據(jù)庫(kù)中有`Articles`表(`id`,`title`,`category`,`publish_time`),請(qǐng)寫出SQL查詢:-查詢最近7天發(fā)布的科技類文章,按閱讀量降序排列,每頁(yè)顯示10篇。答案:sqlSELECTid,title,category,publish_time,read_countFROMArticlesWHEREcategory='科技'ANDpublish_time>=DATE_SUB(NOW(),INTERVAL7DAY)ORDERBYread_countDESCLIMIT10,9;解析:使用`WHERE`過(guò)濾時(shí)間范圍和分類,`ORDERBY`降序排列,`LIMIT`分頁(yè)顯示,實(shí)際應(yīng)用需考慮索引優(yōu)化(如`publish_time`和`category`聯(lián)合索引)。2.NoSQL應(yīng)用場(chǎng)景題目:請(qǐng)簡(jiǎn)述騰訊在直播或游戲場(chǎng)景下,為什么選擇使用Redis作為緩存層,并說(shuō)明其優(yōu)勢(shì)。答案:1.低延遲:Redis內(nèi)存存儲(chǔ),讀寫速度達(dá)萬(wàn)級(jí)QPS,適合實(shí)時(shí)場(chǎng)景(如直播彈幕、游戲排行榜)。2.原子操作:支持`INCR`等原子命令,保證高并發(fā)下數(shù)據(jù)一致性(如用戶在線數(shù)統(tǒng)計(jì))。3.分布式支持:騰訊自研的RedisCluster可水平擴(kuò)展,解決單機(jī)容量瓶頸。解析:Redis的高性能和原子性使其適合騰訊高并發(fā)場(chǎng)景,其分布式方案(如TencentDBforRedis)也是其優(yōu)勢(shì)之一。3.分庫(kù)分表設(shè)計(jì)題目:假設(shè)騰訊QQ用戶數(shù)據(jù)量達(dá)億級(jí),請(qǐng)說(shuō)明如何進(jìn)行分庫(kù)分表設(shè)計(jì),并舉例說(shuō)明。答案:1.分庫(kù):按地域分庫(kù)(如華東、華南),每個(gè)庫(kù)部署獨(dú)立數(shù)據(jù)庫(kù)集群(如TencentDB)。2.分表:按時(shí)間或用戶ID分表(如`Users_2023`,`Users_2024`),或使用哈希分表(如`Users_{hash(UserID)%100}`)。3.舉例:用戶表`Users`按月份分表,查詢時(shí)只需掃描當(dāng)前月份表,減少全表掃描壓力。解析:分庫(kù)分表需結(jié)合業(yè)務(wù)場(chǎng)景,騰訊內(nèi)部可利用自研數(shù)據(jù)庫(kù)中間件(如TDSW)簡(jiǎn)化分表分庫(kù)操作。4.數(shù)據(jù)備份與容災(zāi)題目:請(qǐng)簡(jiǎn)述騰訊如何保證用戶數(shù)據(jù)的持久化和跨地域容災(zāi)方案。答案:1.數(shù)據(jù)備份:使用TencentDB的增量備份和全量備份,每日自動(dòng)同步到異地機(jī)房。2.容災(zāi)方案:采用多活架構(gòu)(如VPC網(wǎng)絡(luò)隔離),兩地三中心部署,故障自動(dòng)切換。3.數(shù)據(jù)一致性:通過(guò)Raft協(xié)議或Paxos保證分布式寫入的一致性。解析:騰訊的數(shù)據(jù)備份方案需兼顧性能和可靠性,自研的數(shù)據(jù)庫(kù)和存儲(chǔ)系統(tǒng)提供高可用保障。四、網(wǎng)絡(luò)與系統(tǒng)(共4題,每題7.5分,總計(jì)30分)1.TCP/IP協(xié)議題目:請(qǐng)簡(jiǎn)述TCP的三次握手和四次揮手過(guò)程,并說(shuō)明每個(gè)階段的作用。答案:-三次握手:1.客戶端發(fā)送SYN包(seq=x),服務(wù)器回復(fù)SYN+ACK(seq=y,ack=x+1),客戶端回復(fù)ACK(ack=y+1)。2.目的:雙方確認(rèn)收發(fā)能力,同步初始序列號(hào)。-四次揮手:1.客戶端發(fā)送FIN(seq=a),服務(wù)器回復(fù)ACK(ack=a+1)。2.服務(wù)器發(fā)送FIN(seq=b),客戶端回復(fù)ACK(ack=b+1)。3.雙方等待對(duì)方確認(rèn)后關(guān)閉連接。4.目的:確保雙方數(shù)據(jù)傳輸完成。解析:TCP通過(guò)握手保證連接可靠性,四次揮手處理連接釋放,騰訊的網(wǎng)絡(luò)架構(gòu)需嚴(yán)格遵循這些協(xié)議。2.CDN應(yīng)用題目:假設(shè)騰訊視頻需要加速全球用戶訪問(wèn),請(qǐng)說(shuō)明CDN的緩存策略(如Pre-fetch、Coreshot)。答案:1.Pre-fetch:預(yù)加載熱點(diǎn)視頻片段(如前5秒),用戶請(qǐng)求時(shí)立即返回,提升體驗(yàn)。2.Coreshot:優(yōu)先緩存視頻核心幀(如關(guān)鍵劇情),其他幀按需請(qǐng)求,減少流量消耗。3.騰訊方案:自研CDN(如CVM)支持動(dòng)態(tài)調(diào)整緩存策略,結(jié)合AI預(yù)測(cè)用戶行為優(yōu)化緩存。解析:CDN緩存策略需結(jié)合用戶行為,騰訊可利用AI和自研緩存算法提升分發(fā)效率。3.系統(tǒng)監(jiān)控與告警題目:請(qǐng)簡(jiǎn)述如何設(shè)計(jì)騰訊服務(wù)的監(jiān)控告警體系,包括指標(biāo)選擇和告警策略。答案:1.指標(biāo)選擇:-請(qǐng)求延遲(如P99)、錯(cuò)誤率、資源利用率(CPU/內(nèi)存)。-騰訊內(nèi)部使用自研監(jiān)控平臺(tái)(如TBE),采集分布式指標(biāo)。2.告警策略:-閾值告警(如延遲超過(guò)200ms),結(jié)合趨勢(shì)分析(如5分鐘內(nèi)持續(xù)上升)。-告警分級(jí)(如Critical/Priority),通過(guò)短信/釘釘推送。解析:監(jiān)控告警需兼顧準(zhǔn)確性和及時(shí)性,騰訊可利用自研工具實(shí)現(xiàn)自動(dòng)化監(jiān)控。4.負(fù)載均衡題目:請(qǐng)說(shuō)明騰訊如何使用LVS/Nginx實(shí)現(xiàn)高可用負(fù)載均衡,并舉例說(shuō)明健康檢查策略。答案:1.LVS:使用IPVS模式(如NAT/DR),支持內(nèi)核級(jí)轉(zhuǎn)發(fā),適合大流量場(chǎng)景。2.Nginx:基于內(nèi)存的負(fù)載均衡,支持Lua腳本化,適合動(dòng)態(tài)路由。3.健康檢查:-定期發(fā)送HTTP請(qǐng)求(如`/health`),超時(shí)則移除故障節(jié)點(diǎn)。-騰訊內(nèi)部使用自研健康檢查工具(如TBH),支持多維度檢查(如業(yè)務(wù)日志)。解析:負(fù)載均衡需結(jié)合業(yè)務(wù)場(chǎng)景,騰訊可利用自研工具實(shí)現(xiàn)更智能的健康檢查。五、編程語(yǔ)言與工程(共4題,每題7.5分,總計(jì)30分)1.Python性能優(yōu)化題目:請(qǐng)簡(jiǎn)述如何優(yōu)化Python代碼的性能,舉例說(shuō)明。答案:1.使用`map`/`filter`替代循環(huán):python原始result=[]fornuminnums:ifnum>0:result.append(num)優(yōu)化result=list(filter(lambdax:x>0,nums))2.減少全局變量訪問(wèn):局部變量訪問(wèn)更快,避免在函數(shù)內(nèi)頻繁修改全局狀態(tài)。3.騰訊場(chǎng)景:直播數(shù)據(jù)處理時(shí),使用`pandas`或`numpy`替代純Python列表操作。解析:Python性能優(yōu)化需結(jié)合實(shí)際場(chǎng)景,騰訊內(nèi)部可利用自研框架(如PyTorch)加速計(jì)算。2.Java面向?qū)ο箢}目:請(qǐng)簡(jiǎn)述Java中的`volatile`關(guān)鍵字作用,并舉例說(shuō)明。答案:`volatile`保證變量可見性和有序性,但不保證原子性:javavolatilebooleanf
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 石英晶體振蕩器制造工崗前管理綜合考核試卷含答案
- 苗木培育工崗前技能掌握考核試卷含答案
- 煤間接液化分離操作工崗前設(shè)備考核試卷含答案
- 膜劑工安全宣貫?zāi)M考核試卷含答案
- 流延輔助工安全操作測(cè)試考核試卷含答案
- 銀幕制造工操作安全模擬考核試卷含答案
- 海南企業(yè)管理培訓(xùn)課件
- 銀行內(nèi)部培訓(xùn)制度
- 酒店員工獎(jiǎng)懲激勵(lì)與反饋制度
- 超市員工績(jī)效考核及評(píng)價(jià)制度
- 買賣肉合同樣本
- 2025年中國(guó)三氯丙酮市場(chǎng)調(diào)查研究報(bào)告
- 五下語(yǔ)文快樂讀書吧《三國(guó)演義》導(dǎo)讀單
- 2025屆高考語(yǔ)文復(fù)習(xí):以《百合花》為例掌握小說(shuō)考點(diǎn)
- 面向?qū)ο笙到y(tǒng)分析與設(shè)計(jì)(MOOC版)全套教學(xué)課件
- DLT-循環(huán)流化床鍋爐停(備)用維護(hù)保養(yǎng)導(dǎo)則
- 08D800-5 民用建筑電氣設(shè)計(jì)與施工 常用電氣設(shè)備安裝與控制
- JT-T-1248-2019營(yíng)運(yùn)貨車能效和二氧化碳排放強(qiáng)度等級(jí)及評(píng)定方法
- 人教PEP英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案教學(xué)設(shè)計(jì)及教學(xué)反思
- 語(yǔ)文七年級(jí)下字帖打印版
- 08年常德地理會(huì)考試卷及答案
評(píng)論
0/150
提交評(píng)論