版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2026年騰訊公司技術(shù)面試題庫及答案詳解一、編程語言基礎(chǔ)(5題,每題10分)1.題目:在Python中,如何實(shí)現(xiàn)一個(gè)函數(shù),輸入一個(gè)字符串,返回該字符串中所有單詞的長度列表(空格分隔)。例如,輸入`"Helloworld"`,輸出`[5,5]`。2.題目:請寫出Java代碼,實(shí)現(xiàn)一個(gè)方法,判斷一個(gè)整數(shù)是否為完全平方數(shù)(如16是,25是,10不是)。3.題目:用C++實(shí)現(xiàn)一個(gè)單鏈表節(jié)點(diǎn)結(jié)構(gòu)體,并編寫插入和刪除節(jié)點(diǎn)的函數(shù)。4.題目:在JavaScript中,如何使用閉包實(shí)現(xiàn)一個(gè)簡單的計(jì)數(shù)器函數(shù)?5.題目:Go語言中,如何定義一個(gè)切片,并初始化其值為`[1,2,3]`?答案與解析1.Python字符串處理pythondefword_lengths(s):return[len(word)forwordins.split()]解析:-`s.split()`默認(rèn)按空格分割字符串,返回單詞列表。-列表推導(dǎo)式計(jì)算每個(gè)單詞的長度。2.判斷完全平方數(shù)javapublicbooleanisPerfectSquare(intnum){if(num<0)returnfalse;intsqrt=(int)Math.sqrt(num);returnsqrtsqrt==num;}解析:-開方后取整,再平方看是否等于原數(shù)。負(fù)數(shù)直接返回false。3.C++單鏈表節(jié)點(diǎn)cppstructListNode{intval;ListNodenext;ListNode(intx):val(x),next(nullptr){}};voidinsert(ListNode&head,intval){ListNodenewNode=newListNode(val);newNode->next=head;head=newNode;}voiddeleteNode(ListNode&head,intval){ListNodecurrent=head;ListNodeprev=nullptr;while(current&¤t->val!=val){prev=current;current=current->next;}if(current){if(prev)prev->next=current->next;elsehead=head->next;deletecurrent;}}解析:-插入時(shí)新建節(jié)點(diǎn),指向原頭節(jié)點(diǎn)。-刪除時(shí)需處理頭節(jié)點(diǎn)和中間節(jié)點(diǎn)。4.JavaScript閉包計(jì)數(shù)器javascriptfunctioncreateCounter(){letcount=0;returnfunction(){returncount++;};}解析:-外層函數(shù)定義私有變量`count`,內(nèi)層函數(shù)修改并返回。5.Go語言切片gofuncmain(){slice:=[]int{1,2,3}fmt.Println(slice)//輸出[123]}解析:-切片是動(dòng)態(tài)數(shù)組,直接用`[]int`聲明并初始化。二、數(shù)據(jù)結(jié)構(gòu)與算法(6題,每題10分)1.題目:用遞歸方式實(shí)現(xiàn)快速排序算法。2.題目:設(shè)計(jì)一個(gè)算法,找出無重復(fù)數(shù)字?jǐn)?shù)組中的第三大數(shù)(如`[1,2,2,5,3]`返回2)。3.題目:用BFS(廣度優(yōu)先搜索)實(shí)現(xiàn)二叉樹的層序遍歷。4.題目:編寫一個(gè)函數(shù),判斷一個(gè)鏈表是否有環(huán)(用快慢指針)。5.題目:用動(dòng)態(tài)規(guī)劃計(jì)算斐波那契數(shù)列的第n項(xiàng)(優(yōu)化空間復(fù)雜度)。6.題目:實(shí)現(xiàn)一個(gè)LRU(最近最少使用)緩存,支持get和put操作(用哈希+雙向鏈表)。答案與解析1.快速排序遞歸實(shí)現(xiàn)pythondefquick_sort(arr):iflen(arr)<=1:returnarrpivot=arr[len(arr)//2]left=[xforxinarrifx<pivot]middle=[xforxinarrifx==pivot]right=[xforxinarrifx>pivot]returnquick_sort(left)+middle+quick_sort(right)解析:-選擇中間值作為基準(zhǔn),遞歸分治。2.第三大數(shù)pythondefthird_largest(nums):first,second,third=float('-inf'),float('-inf'),float('-inf')fornuminnums:ifnum>first:first,second,third=num,first,secondeliffirst>num>second:second,third=num,secondelifsecond>num>third:third=numreturnthird解析:-維護(hù)三個(gè)變量記錄前三大的數(shù)。3.二叉樹層序遍歷pythonfromcollectionsimportdequedeflevel_order(root):ifnotroot:return[]result,queue=[],deque([root])whilequeue:level=[]for_inrange(len(queue)):node=queue.popleft()level.append(node.val)ifnode.left:queue.append(node.left)ifnode.right:queue.append(node.right)result.append(level)returnresult解析:-用隊(duì)列存儲當(dāng)前層節(jié)點(diǎn),逐層遍歷。4.鏈表環(huán)檢測javapublicbooleanhasCycle(ListNodehead){if(head==null)returnfalse;ListNodeslow=head,fast=head;while(fast!=null&&fast.next!=null){slow=slow.next;fast=fast.next.next;if(slow==fast)returntrue;}returnfalse;}解析:-快慢指針相遇即存在環(huán)。5.動(dòng)態(tài)規(guī)劃斐波那契(優(yōu)化空間)pythondeffib(n):ifn<=1:returnna,b=0,1for_inrange(2,n+1):a,b=b,a+breturnb解析:-只用兩個(gè)變量存儲前兩個(gè)數(shù),避免O(n)空間。6.LRU緩存實(shí)現(xiàn)pythonclassListNode:def__init__(self,key=0,value=0):self.key=keyself.value=valueself.prev=Noneself.next=NoneclassLRUCache:def__init__(self,capacity:int):self.capacity=capacityself.cache={}self.head,self.tail=ListNode(),ListNode()self.head.next=self.tailself.tail.prev=self.headdefget(self,key:int)->int:ifkeyinself.cache:node=self.cache[key]self._move_to_head(node)returnnode.valuereturn-1defput(self,key:int,value:int)->None:ifkeyinself.cache:node=self.cache[key]node.value=valueself._move_to_head(node)else:node=ListNode(key,value)self.cache[key]=nodeself._add_node(node)iflen(self.cache)>self.capacity:self._remove_lru_node()def_move_to_head(self,node):self._remove_node(node)self._add_node(node)def_add_node(self,node):node.prev=self.headnode.next=self.head.nextself.head.next.prev=nodeself.head.next=nodedef_remove_node(self,node):prev_node=node.prevnext_node=node.nextprev_node.next=next_nodenext_node.prev=prev_nodedef_remove_lru_node(self):lru=self.tail.prevself._remove_node(lru)delself.cache[lru.key]解析:-哈希記錄鍵值,雙向鏈表維護(hù)訪問順序。三、系統(tǒng)設(shè)計(jì)與數(shù)據(jù)庫(4題,每題12分)1.題目:設(shè)計(jì)一個(gè)高并發(fā)的短鏈接系統(tǒng)(如tinyURL),要求支持秒級生成和解析。2.題目:如何設(shè)計(jì)一個(gè)高可用、可伸縮的微博點(diǎn)贊系統(tǒng)?3.題目:用SQL實(shí)現(xiàn)一個(gè)查詢,找出某個(gè)用戶關(guān)注的人中,最近一個(gè)月發(fā)過帖子的用戶數(shù)量(假設(shè)表結(jié)構(gòu)有`users`、`follows`、`posts`)。4.題目:設(shè)計(jì)一個(gè)消息隊(duì)列(如Kafka),如何保證消息的至少一次、最多一次和精確一次傳遞?答案與解析1.短鏈接系統(tǒng)設(shè)計(jì)-分布式ID生成:使用Snowflake算法生成唯一ID(時(shí)間戳+機(jī)器碼+序列號)。-緩存層:用Redis緩存熱點(diǎn)短鏈接,降低數(shù)據(jù)庫壓力。-數(shù)據(jù)庫設(shè)計(jì):sqlCREATETABLEshortlinks(idBIGINTPRIMARYKEY,original_urlVARCHAR(255),short_urlVARCHAR(10));-負(fù)載均衡:使用Nginx分發(fā)請求到不同節(jié)點(diǎn)。2.微博點(diǎn)贊系統(tǒng)-數(shù)據(jù)結(jié)構(gòu):sqlCREATETABLElikes(user_idINT,post_idINT,created_atDATETIME,UNIQUEKEY(user_id,post_id));-高并發(fā)優(yōu)化:-使用Redis緩存用戶點(diǎn)贊狀態(tài)。-分布式事務(wù)(如Seata)處理跨服務(wù)操作。-數(shù)據(jù)庫讀寫分離,熱點(diǎn)表分片。3.關(guān)注用戶發(fā)帖查詢sqlSELECTCOUNT(DISTINCTp.user_id)FROMpostspJOINfollowsfONp.user_id=f.followee_idWHEREf.follower_id=?--當(dāng)前用戶IDANDp.created_at>=NOW()-INTERVAL1MONTH;解析:-連接`follows`和`posts`表,篩選關(guān)注的人的最近一個(gè)月帖子。4.消息隊(duì)列傳遞保證-至少一次:通過冪等性設(shè)計(jì),重試機(jī)制避免重復(fù)處理。-最多一次:使用冪等鍵(如訂單號),確保重復(fù)消息被過濾。-精確一次:-消息確認(rèn)機(jī)制(ACK)。-空消息補(bǔ)償(消息丟失時(shí)重發(fā))。-持久化消息到磁盤。四、網(wǎng)絡(luò)與分布式系統(tǒng)(5題,每題12分)1.題目:解釋TCP三次握手和四次揮手的過程。2.題目:如何解決分布式系統(tǒng)中的CAP問題?3.題目:設(shè)計(jì)一個(gè)分布式鎖,要求高可用性。4.題目:Redis如何實(shí)現(xiàn)持久化(RDB和AOF)?5.題目:在騰訊云上部署一個(gè)高可用的微服務(wù)架構(gòu),如何設(shè)計(jì)限流和熔斷?答案與解析1.TCP三次握手-第一次:客戶端發(fā)送SYN包(seq=x),服務(wù)器確認(rèn)SYN+ACK(ack=x+1,seq=y)。-第二次:客戶端發(fā)送ACK(ack=y+1),建立連接。-四次揮手:-客戶端發(fā)送FIN(seq=a),服務(wù)器ACK(ack=a+1)。-服務(wù)器發(fā)送FIN(seq=b),客戶端ACK(ack=b+1)。-服務(wù)器關(guān)閉連接,客戶端等待2MSL后關(guān)閉。2.CAP問題解決方案-分布式數(shù)據(jù)庫:-ChaoShu(一致性+分區(qū)容錯(cuò))。-Paxos/Raft(一致性+可用性)。-應(yīng)用層優(yōu)化:-使用本地緩存+最終一致性。3.分布式鎖設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江西省贛房投資集團(tuán)有限公司社會(huì)招聘6人考試備考題庫及答案解析
- 房屋合伙共協(xié)議書
- 家庭陪護(hù)協(xié)議書
- 工地補(bǔ)貼協(xié)議書
- 小區(qū)動(dòng)火協(xié)議書
- 英文廣告協(xié)議書
- 異地調(diào)解協(xié)議書
- 賬號購買協(xié)議書
- 學(xué)生交錢協(xié)議書
- 租房電費(fèi)合同范本
- 降低切口感染的發(fā)生率品管圈成果匯報(bào)書模板
- 商業(yè)項(xiàng)目評估報(bào)告
- 廣東省深圳市寶安區(qū)2025-2026學(xué)年生物高二第一學(xué)期期末檢測模擬試題含解析
- 人工智能+區(qū)域協(xié)調(diào)區(qū)域經(jīng)濟(jì)一體化可行性分析
- 多重耐藥感染防控PDCA培訓(xùn)
- (人教版)初中英語九年級 Unit 13單元測試及答案01
- 第八章-波導(dǎo)間耦合
- 新版三體系培訓(xùn)課件
- 2025年數(shù)學(xué)建模競賽試題與答案解析
- 海上風(fēng)電與海洋牧場融合發(fā)展趨勢
- 2025至2030年中國茶葉電商行業(yè)市場深度分析及投資戰(zhàn)略規(guī)劃研究報(bào)告
評論
0/150
提交評論