版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2026年騰訊軟件開發(fā)工程師筆試題集一、編程基礎(chǔ)(共5題,每題8分,總分40分)1.選擇題:數(shù)據(jù)結(jié)構(gòu)與算法基礎(chǔ)題目:已知一個(gè)無重復(fù)元素的數(shù)組`arr`,現(xiàn)需找出其中和最大的三個(gè)數(shù)的乘積。以下哪種方法最符合時(shí)間復(fù)雜度要求?A.先排序,再計(jì)算前三個(gè)數(shù)的乘積和后三個(gè)數(shù)的乘積,取最大值B.使用快速選擇算法找到第三大的數(shù),計(jì)算乘積C.使用堆結(jié)構(gòu),維護(hù)前三個(gè)最大數(shù),遍歷一次數(shù)組D.使用暴力枚舉,計(jì)算所有三元組的乘積答案:C解析:選項(xiàng)A的時(shí)間復(fù)雜度為O(nlogn),選項(xiàng)B為O(n);選項(xiàng)C使用最小堆或優(yōu)先隊(duì)列維護(hù)三個(gè)最大數(shù),時(shí)間復(fù)雜度為O(n);選項(xiàng)D為O(n^3)。堆結(jié)構(gòu)方法最為高效。2.選擇題:字符串處理題目:給定兩個(gè)字符串`s1`和`s2`,判斷`s1`是否可以通過若干次插入操作得到`s2`(插入操作可以是任意字符)。以下哪個(gè)方法是正確的?A.比較兩個(gè)字符串的字符頻率是否一致B.使用動(dòng)態(tài)規(guī)劃,定義dp[i][j]表示`s1`前i個(gè)字符和`s2`前j個(gè)字符的匹配狀態(tài)C.檢查`s2`是否是`s1`的子序列D.使用KMP算法判斷`s1`是否為`s2`的子串答案:B解析:動(dòng)態(tài)規(guī)劃方法可以準(zhǔn)確判斷插入關(guān)系。例如,dp[i][j]=1表示`s1`前i個(gè)字符可以轉(zhuǎn)化為`s2`前j個(gè)字符。若dp[m][n]為1,則`s1`可通過插入得到`s2`。其他選項(xiàng)均無法準(zhǔn)確處理插入操作。3.選擇題:二叉樹遍歷題目:給定一個(gè)二叉樹,要求返回其“鋸齒形”層序遍歷(即第一層從左到右,第二層從右到左,以此類推)。以下哪個(gè)方法正確?A.先普通層序遍歷,再反轉(zhuǎn)偶數(shù)層B.使用兩個(gè)棧交替遍歷左右子樹C.使用一個(gè)棧,每次遍歷時(shí)記錄當(dāng)前層方向D.使用遞歸,判斷當(dāng)前深度決定遍歷方向答案:A解析:普通層序遍歷后反轉(zhuǎn)偶數(shù)層即可。其他方法要么無法正確處理方向變化,要么效率較低。例如,選項(xiàng)B需要額外棧管理方向,較為復(fù)雜。4.選擇題:位運(yùn)算題目:如何判斷一個(gè)整數(shù)是否為2的冪(即`n&(n-1)`為0且`n>0`)?以下哪個(gè)條件不成立?A.`n&(n-1)==0`B.`n&(~n)==n`C.`n`的二進(jìn)制表示中只有1個(gè)1D.`n`能被所有小于它的2的冪整除答案:D解析:前三個(gè)條件均為判斷2的冪的正確方法,而選項(xiàng)D不成立,因?yàn)槔鏯n=4`不能被`2`整除。5.選擇題:貪心算法題目:給定一系列區(qū)間,要求選擇最多的不相交區(qū)間。以下哪個(gè)方法正確?A.按右端點(diǎn)升序排序,每次選擇右端點(diǎn)最小的區(qū)間B.按左端點(diǎn)升序排序,每次選擇左端點(diǎn)最大的區(qū)間C.按區(qū)間長度升序排序,每次選擇第一個(gè)區(qū)間D.使用動(dòng)態(tài)規(guī)劃計(jì)算最大重疊數(shù)答案:A解析:按右端點(diǎn)升序貪心選擇,可以確保每次選擇的區(qū)間不影響后續(xù)選擇。其他方法無法保證最優(yōu)解。二、編程實(shí)現(xiàn)(共3題,每題15分,總分45分)1.編程題:滑動(dòng)窗口最大值題目:給定一個(gè)數(shù)組`nums`和一個(gè)窗口大小`k`,返回每個(gè)窗口的滑動(dòng)最大值。例如:輸入:`nums=[1,3,-1,-3,5,3,6,7]`,`k=3`輸出:`[3,3,5,5,6,7]`要求:-不能使用排序,時(shí)間復(fù)雜度要求O(n)-可使用輔助數(shù)據(jù)結(jié)構(gòu)參考代碼(Python):pythonfromcollectionsimportdequedefmaxSlidingWindow(nums,k):q=deque()result=[]foriinrange(len(nums)):移除窗口外的元素ifqandq[0]<i-k+1:q.popleft()移除窗口內(nèi)小于當(dāng)前元素的元素whileqandnums[q[-1]]<nums[i]:q.pop()q.append(i)窗口形成后記錄最大值ifi>=k-1:result.append(nums[q[0]])returnresult2.編程題:LRU緩存機(jī)制題目:設(shè)計(jì)LRU(LeastRecentlyUsed)緩存機(jī)制,支持`get`和`put`操作。LRU緩存最多容納`capacity`個(gè)元素,超出時(shí)刪除最久未使用的元素。要求:-`get(key)`返回鍵對應(yīng)的值,若不存在返回-1-`put(key,value)`插入或更新鍵值對,若超出容量則刪除最久未使用元素-可使用哈希表+雙向鏈表實(shí)現(xiàn)參考代碼(Python):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=ListNode()self.tail=ListNode()self.head.next=self.tailself.tail.prev=self.headdefget(self,key:int)->int:ifkeynotinself.cache:return-1node=self.cache[key]self._move_to_head(node)returnnode.valuedefput(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:tail=self._pop_tail()delself.cache[tail.key]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_pop_tail(self):tail=self.tail.prevself._remove_node(tail)returntail3.編程題:二叉樹遍歷的應(yīng)用題目:給定一個(gè)二叉樹,返回其“鋸齒形”層序遍歷(第一層從左到右,第二層從右到左,以此類推)。要求:-使用遞歸或迭代方法實(shí)現(xiàn)-可使用?;蜿?duì)列輔助參考代碼(Python):pythonfromcollectionsimportdequeclassTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightdefzigzagLevelOrder(root):ifnotroot:return[]result=[]queue=deque([root])left_to_right=Truewhilequeue:level_size=len(queue)level=[]for_inrange(level_size):node=queue.popleft()ifleft_to_right:level.append(node.val)else:level.insert(0,node.val)ifnode.left:queue.append(node.left)ifnode.right:queue.append(node.right)result.append(level)left_to_right=notleft_to_rightreturnresult三、系統(tǒng)設(shè)計(jì)(共2題,每題20分,總分40分)1.系統(tǒng)設(shè)計(jì)題:短鏈接生成服務(wù)題目:設(shè)計(jì)一個(gè)短鏈接生成服務(wù),要求:-輸入長鏈接,輸出固定長度的短鏈接(如6位隨機(jī)字母數(shù)字組合)-支持短鏈接到長鏈接的反向解析-高并發(fā)場景下性能要求高要求:-描述核心數(shù)據(jù)結(jié)構(gòu)和算法-說明如何解決高并發(fā)問題-可考慮分布式部署方案參考答案:核心數(shù)據(jù)結(jié)構(gòu):-使用哈希表(如Redis)存儲(chǔ)短鏈接到長鏈接的映射-短鏈接使用自增ID或Base62編碼(如`a-zA-Z0-9`)映射為短字符串算法:1.輸入長鏈接時(shí),生成唯一ID(如UUID),編碼為短字符串(如`123abc`)2.將`{短鏈接:長鏈接}`存入Redis(設(shè)置過期時(shí)間)3.反向解析時(shí),直接查Redis返回長鏈接高并發(fā)方案:-使用Redis集群分片存儲(chǔ)數(shù)據(jù)-對短鏈接請求使用限流策略(如令牌桶算法)-可用消息隊(duì)列(如Kafka)異步處理請求分布式部署:-短鏈接生成服務(wù)可用多個(gè)實(shí)例,負(fù)載均衡-Redis集群保證數(shù)據(jù)一致性2.系統(tǒng)設(shè)計(jì)題:實(shí)時(shí)推薦系統(tǒng)題目:設(shè)計(jì)一個(gè)實(shí)時(shí)推薦系統(tǒng),用戶打開App時(shí)需在100ms內(nèi)返回個(gè)性化推薦列表(如商品、新聞)。要求:-支持用戶行為實(shí)時(shí)更新(如點(diǎn)擊、收藏)-推薦算法需兼顧準(zhǔn)確性和實(shí)時(shí)性-高并發(fā)場景下需保證低延遲要求:-描述推薦算法邏輯-說明如何實(shí)現(xiàn)實(shí)時(shí)性-可考慮數(shù)據(jù)存儲(chǔ)和計(jì)算架構(gòu)參考答案:推薦算法:-使用協(xié)同過濾+內(nèi)容特征的混合推薦-協(xié)同過濾:基于用戶歷史行為計(jì)算相似用戶,取相似用戶喜歡的商品-內(nèi)容特征:結(jié)合商品屬性和用戶畫像進(jìn)行匹配-實(shí)時(shí)性優(yōu)
溫馨提示
- 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年江西陶瓷工藝美術(shù)職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測試備考試題及答案詳細(xì)解析
- 2026年昆明冶金高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試模擬試題及答案詳細(xì)解析
- 2026山西綜改示范區(qū)人民法院書記員招聘1人備考考試題庫及答案解析
- 2026年河北化工醫(yī)藥職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年蘭州資源環(huán)境職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試參考題庫含詳細(xì)答案解析
- 2026年蘇州市職業(yè)大學(xué)單招綜合素質(zhì)筆試參考題庫含詳細(xì)答案解析
- 孔子和早期儒學(xué)課件
- 基因與遺傳?。撼杀究刂普n件
- 人體胚胎發(fā)育:精益創(chuàng)業(yè)課件
- AI少女小冰:虛擬偶像
- 2026年上半年眉山天府新區(qū)公開選調(diào)事業(yè)單位工作人員的參考題庫附答案
- 用電安全隱患檢測的新技術(shù)及應(yīng)用
- 新疆克州阿合奇縣2024-2025學(xué)年七年級(jí)上學(xué)期期末質(zhì)量檢測英語試卷(含答案及聽力原文無音頻)
- 《水庫泥沙淤積及影響評(píng)估技術(shù)規(guī)范》
- 2023-2024學(xué)年浙江省杭州市西湖區(qū)教科版五年級(jí)上冊期末考試科學(xué)試卷
- GB/T 7948-2024滑動(dòng)軸承塑料軸套極限PV試驗(yàn)方法
- DL∕T 1057-2023 自動(dòng)跟蹤補(bǔ)償消弧線圈成套裝置技術(shù)條件
- AQ 2003-2018 軋鋼安全規(guī)程(正式版)
- 村委會(huì)指定監(jiān)護(hù)人證明書模板
- 送給業(yè)主禮物方案
- JJG 393-2018便攜式X、γ輻射周圍劑量當(dāng)量(率)儀和監(jiān)測儀
評(píng)論
0/150
提交評(píng)論