騰訊公司技術部門面試題及答案解析_第1頁
騰訊公司技術部門面試題及答案解析_第2頁
騰訊公司技術部門面試題及答案解析_第3頁
騰訊公司技術部門面試題及答案解析_第4頁
騰訊公司技術部門面試題及答案解析_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

2026年騰訊公司技術部門面試題及答案解析一、編程題(共3題,每題15分,總分45分)1.題目(15分):編寫一個函數(shù),輸入一個非負整數(shù)`n`,返回其對應的二進制表示中`1`的個數(shù)。例如,輸入`11`(二進制為`1011`),返回`3`。要求不使用內(nèi)置函數(shù),僅用位運算實現(xiàn)。答案:pythondefcount_bits(n):count=0whilen:count+=n&1n>>=1returncount解析:-位運算`n&1`可判斷最低位是否為`1`,右移`n>>=1`將二進制右移一位。-時間復雜度為`O(logn)`,空間復雜度為`O(1)`。-騰訊面試??疾煳贿\算,考察對底層邏輯的理解。2.題目(15分):給定一個字符串`s`,找到其中不重復的最長子串的長度。例如,輸入`"abcabcbb"`,返回`3`(最長子串為`"abc"`)。要求時間復雜度為`O(n)`。答案:pythondeflength_of_longest_substring(s):char_map={}left=0max_len=0forrightinrange(len(s)):ifs[right]inchar_mapandchar_map[s[right]]>=left:left=char_map[s[right]]+1char_map[s[right]]=rightmax_len=max(max_len,right-left+1)returnmax_len解析:-使用滑動窗口`left`和`right`,哈希表`char_map`記錄字符上一次出現(xiàn)的位置。-當發(fā)現(xiàn)重復字符時,移動`left`到重復字符的下一個位置。-時間復雜度為`O(n)`,空間復雜度為`O(min(m,n))`(`m`為字符集大?。?騰訊高頻考察字符串問題,需掌握滑動窗口技巧。3.題目(15分):實現(xiàn)一個`LRUCache`(最近最少使用緩存),支持`get`和`put`操作。要求`get`和`put`的時間復雜度為`O(1)`。答案: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:oldest=self.order.pop(0)delself.cache[oldest]self.cache[key]=valueself.order.append(key)解析:-使用字典`cache`存儲鍵值對,列表`order`記錄訪問順序。-`get`時將鍵移到末尾表示最近使用,`put`時若超出容量則刪除最久未使用的鍵。-時間復雜度為`O(1)`,需用`list.remove()`優(yōu)化(實際可改用雙向鏈表)。-騰訊??荚O計題,考察數(shù)據(jù)結構應用。二、系統(tǒng)設計題(共2題,每題25分,總分50分)1.題目(25分):設計一個高并發(fā)的短鏈接生成服務。要求:-支持高并發(fā)訪問(每秒百萬級請求)。-鏈接長度盡量短(如`/12345`)。-可快速解析短鏈接到原鏈接。答案:核心思路:1.短ID生成:使用自增ID+哈希(如Base62編碼,`a-z0-9`共62個字符)。2.高并發(fā)支持:-數(shù)據(jù)庫分表分庫(如按ID模分表)。-Redis緩存熱點數(shù)據(jù),熱點鏈路預取。3.解析服務:-前端服務接短鏈接,查詢數(shù)據(jù)庫/緩存返回原鏈接。-異步寫入日志(如Kafka),防寫入阻塞。偽代碼:pythonID生成器(Base62編碼)defencode_id(num):chars="abcdefghijklmnopqrstuvwxyz0123456789"res=""whilenum>0:res=chars[num%62]+resnum//=62returnres.zfill(6)#固定長度6位解析短鏈接defdecode_id(short_link):num=0forcharinshort_link[8:]:#去除`/`num=num62+chars.index(char)returnnum解析:-Base62可壓縮ID至短鏈,如`1000`編碼為`1dz`。-數(shù)據(jù)庫需支持高并發(fā)寫入(如分表+異步寫入),Redis緩存熱點鏈路。-騰訊關注高并發(fā)場景,考察分布式和緩存設計。2.題目(25分):設計一個實時日志分析系統(tǒng),要求:-支持每秒接收百萬條日志。-實時統(tǒng)計熱點關鍵詞(如`ERROR`、`WARN`)。-支持按時間窗口統(tǒng)計(如最近5分鐘內(nèi)`ERROR`數(shù)量)。答案:核心思路:1.日志采集:-Flume/Kafka收集日志,推送到消息隊列。2.實時處理:-Flink/SparkStreaming處理數(shù)據(jù)流,按關鍵詞統(tǒng)計。3.熱點統(tǒng)計:-使用Redis/ZMQ實現(xiàn)廣播,多個節(jié)點共享熱點數(shù)據(jù)。4.時間窗口:-滑動時間窗口統(tǒng)計(如每分鐘滑動統(tǒng)計5分鐘內(nèi)數(shù)據(jù))。偽代碼(Flink示例):python實時統(tǒng)計ERROR數(shù)量dataStream.map(line->line.contains("ERROR"))#標記ERROR日志.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))#5分鐘窗口.aggregate(newAggregateFunction())#統(tǒng)計數(shù)量.print()解析:-Kafka保證日志不丟失,F(xiàn)link實現(xiàn)實時統(tǒng)計。-Redis可緩存熱點關鍵詞,降低數(shù)據(jù)庫壓力。-騰訊關注大數(shù)據(jù)和實時計算,考察消息隊列和流處理能力。三、算法題(共2題,每題20分,總分40分)1.題目(20分):給定一個二維矩陣`matrix`,每行和每列都按升序排列,返回矩陣中第`k`小的元素。例如:matrix=[[1,5,9],[10,11,13],[12,13,15]]k=8返回`13`。答案:pythonimportheapqdefkthSmallest(matrix,k):m,n=len(matrix),len(matrix[0])min_heap=[]foriinrange(min(k,m)):#只需前k行heapq.heappush(min_heap,(matrix[i][0],i,0))count=0whilemin_heap:val,i,j=heapq.heappop(min_heap)count+=1ifcount==k:returnvalifj+1<n:heapq.heappush(min_heap,(matrix[i][j+1],i,j+1))return-1解析:-使用最小堆維護當前未處理的元素,每次彈出最小值。-時間復雜度為`O(klogk)`,空間復雜度為`O(k)`。-騰訊??加行蚓仃噯栴},考察堆和二分查找應用。2.題目(20分):給定一個字符串`s`,判斷是否可以通過刪除一些字符使其變?yōu)榛匚拇?。例如:s="baabcba"返回`True`(刪除`b`后為`aabcba`)。要求時間復雜度為`O(n)`。答案:pythondefvalidPalindrome(s:str)->bool:left,right=0,len(s)-1whileleft<right:ifs[left]!=s[right]:returnvalidPalindrome(s[left+1:right+1])orvalidPalindrome(s[left:right])left+=1right-=1returnTrue解析:-雙指針法,當發(fā)現(xiàn)不匹配時嘗試跳過左邊或右邊一個字符。-遞歸調(diào)用直到字符串為空或滿足回文條件。-時間復雜度為`O(2^n)`(實際可優(yōu)化為`O(n)`),空間復雜度為`O(n)`。-騰訊關

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論