2026年百度公司面試筆試題庫(kù)及答案_第1頁(yè)
2026年百度公司面試筆試題庫(kù)及答案_第2頁(yè)
2026年百度公司面試筆試題庫(kù)及答案_第3頁(yè)
2026年百度公司面試筆試題庫(kù)及答案_第4頁(yè)
2026年百度公司面試筆試題庫(kù)及答案_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2026年百度公司面試筆試題庫(kù)及答案一、編程題(共5題,每題15分,總分75分)1.題目:給定一個(gè)包含重復(fù)元素的數(shù)組,請(qǐng)找出所有不重復(fù)的三元組,使得這三個(gè)數(shù)的和等于給定的目標(biāo)值。例如,給定數(shù)組`[1,2,-2,-1,0,1]`和目標(biāo)值`0`,不重復(fù)的三元組有`[-2,-1,3]`和`[-2,0,2]`。請(qǐng)實(shí)現(xiàn)該算法,并說明時(shí)間復(fù)雜度。2.題目:實(shí)現(xiàn)一個(gè)函數(shù),將一個(gè)字符串中的每個(gè)單詞翻轉(zhuǎn),但保持單詞之間的順序不變。例如,輸入`"helloworld"`,輸出`"ollehdlrow"`。請(qǐng)用Python或C++實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。3.題目:給定一個(gè)二叉樹,請(qǐng)判斷該二叉樹是否是平衡二叉樹。平衡二叉樹是指一個(gè)二叉樹中任意節(jié)點(diǎn)的左右子樹的高度差不超過1。請(qǐng)用代碼實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。4.題目:實(shí)現(xiàn)一個(gè)LRU(最近最少使用)緩存,支持get和put操作。get操作返回鍵對(duì)應(yīng)的值,如果鍵不存在返回-1;put操作插入或更新鍵值對(duì)。緩存容量為固定值,超出容量時(shí)需要淘汰最久未使用的元素。請(qǐng)用Python或Java實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。5.題目:給定一個(gè)字符串,請(qǐng)判斷該字符串是否可以由兩個(gè)相同的字符串重復(fù)拼接而成。例如,輸入`"abab"`,輸出`True`;輸入`"abcabc"`,輸出`True`;輸入`"a"`,輸出`False`。請(qǐng)用代碼實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。二、算法題(共5題,每題15分,總分75分)1.題目:給定一個(gè)字符串`s`,找到其中最長(zhǎng)的回文子串。例如,輸入`"babad"`,輸出`"bab"`或`"aba"`。請(qǐng)實(shí)現(xiàn)該算法,并說明時(shí)間復(fù)雜度。2.題目:給定一個(gè)非負(fù)整數(shù)數(shù)組,返回其中三個(gè)數(shù)相加等于零的個(gè)數(shù)。例如,輸入`[1,2,-2,1,-1,0]`,輸出`3`(因?yàn)橛腥齻€(gè)三元組滿足條件)。請(qǐng)實(shí)現(xiàn)該算法,并說明時(shí)間復(fù)雜度。3.題目:給定一個(gè)鏈表,判斷鏈表中是否有環(huán)。如果存在環(huán),請(qǐng)返回進(jìn)入環(huán)的第一個(gè)節(jié)點(diǎn);如果不存在環(huán),返回`None`。請(qǐng)用代碼實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。4.題目:給定一個(gè)二叉搜索樹,請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),將該二叉搜索樹轉(zhuǎn)換為一個(gè)排序的雙向鏈表。轉(zhuǎn)換后的雙向鏈表應(yīng)該保持二叉搜索樹的順序,即左指針指向前一個(gè)節(jié)點(diǎn),右指針指向后一個(gè)節(jié)點(diǎn)。請(qǐng)用代碼實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。5.題目:給定一個(gè)正整數(shù)`n`,請(qǐng)判斷該數(shù)是否是快樂數(shù)??鞓窋?shù)是指一個(gè)數(shù)每次替換為它每個(gè)位置上數(shù)字的平方和,最終變?yōu)?的數(shù)。例如,19是一個(gè)快樂數(shù),因?yàn)?^2+9^2=82,8^2+2^2=68,6^2+8^2=100,1^2+0^2+0^2=1。請(qǐng)用代碼實(shí)現(xiàn),并說明時(shí)間復(fù)雜度。三、系統(tǒng)設(shè)計(jì)題(共3題,每題25分,總分75分)1.題目:設(shè)計(jì)一個(gè)短鏈接系統(tǒng)。用戶可以輸入一個(gè)長(zhǎng)鏈接,系統(tǒng)返回一個(gè)短鏈接;用戶通過短鏈接可以跳轉(zhuǎn)到對(duì)應(yīng)的長(zhǎng)鏈接。請(qǐng)說明系統(tǒng)設(shè)計(jì)思路,包括數(shù)據(jù)結(jié)構(gòu)、算法和可能的優(yōu)化方案。2.題目:設(shè)計(jì)一個(gè)微博系統(tǒng),支持用戶發(fā)布微博、關(guān)注/取消關(guān)注用戶、查看關(guān)注用戶的最新微博等功能。請(qǐng)說明系統(tǒng)設(shè)計(jì)思路,包括數(shù)據(jù)結(jié)構(gòu)、算法和可能的優(yōu)化方案。3.題目:設(shè)計(jì)一個(gè)分布式文件存儲(chǔ)系統(tǒng),支持文件上傳、下載、刪除和分片存儲(chǔ)等功能。請(qǐng)說明系統(tǒng)設(shè)計(jì)思路,包括數(shù)據(jù)結(jié)構(gòu)、算法和可能的優(yōu)化方案。答案及解析一、編程題1.答案:pythondefthree_sum(nums,target):nums.sort()n=len(nums)res=[]foriinrange(n):ifi>0andnums[i]==nums[i-1]:continueleft,right=i+1,n-1whileleft<right:total=nums[i]+nums[left]+nums[right]iftotal==target:res.append([nums[i],nums[left],nums[right]])whileleft<rightandnums[left]==nums[left+1]:left+=1whileleft<rightandnums[right]==nums[right-1]:right-=1left+=1right-=1eliftotal<target:left+=1else:right-=1returnres解析:首先對(duì)數(shù)組進(jìn)行排序,然后使用固定指針法,對(duì)于每個(gè)元素,使用雙指針在剩余部分查找兩個(gè)數(shù)使得三數(shù)之和等于目標(biāo)值。時(shí)間復(fù)雜度為O(n^2)。2.答案:pythondefreverse_words(s):words=s.split()reversed_words=[word[::-1]forwordinwords]return''.join(reversed_words)解析:將字符串按空格分割成單詞,然后對(duì)每個(gè)單詞進(jìn)行翻轉(zhuǎn),最后將翻轉(zhuǎn)后的單詞重新拼接成字符串。時(shí)間復(fù)雜度為O(n)。3.答案:pythondefis_balanced(root):defcheck(node):ifnotnode:return0,Trueleft_height,left_balanced=check(node.left)right_height,right_balanced=check(node.right)returnmax(left_height,right_height)+1,left_balancedandright_balancedandabs(left_height-right_height)<=1returncheck(root)[1]解析:使用遞歸的方法,對(duì)于每個(gè)節(jié)點(diǎn),計(jì)算其左右子樹的高度,并判斷高度差是否不超過1。時(shí)間復(fù)雜度為O(n)。4.答案:pythonclassLRUCache:def__init__(self,capacity):self.capacity=capacityself.cache={}self.order=[]defget(self,key):ifkeyinself.cache:self.order.remove(key)self.order.append(key)returnself.cache[key]return-1defput(self,key,value):ifkeyinself.cache:self.order.remove(key)eliflen(self.cache)>=self.capacity:delself.cache[self.order.pop(0)]self.cache[key]=valueself.order.append(key)解析:使用哈希表存儲(chǔ)鍵值對(duì),使用雙向鏈表維護(hù)訪問順序。get操作將鍵移到鏈表末尾,put操作如果鍵已存在則移到鏈表末尾,如果超出容量則刪除鏈表頭部元素。時(shí)間復(fù)雜度為O(1)。5.答案:pythondefrepeated_substring_pattern(s):n=len(s)foriinrange(1,n//2+1):ifn%i==0:ifs[:i](n//i)==s:returnTruereturnFalse解析:遍歷所有可能的子串長(zhǎng)度,檢查是否存在某個(gè)子串可以重復(fù)拼接成原字符串。時(shí)間復(fù)雜度為O(n^2)。二、算法題1.答案:pythondeflongest_palindrome(s):n=len(s)ifn==0:return""start,max_len=0,1foriinrange(n):ifi-max_len>=1ands[i-max_len-1:i+1]==s[i-max_len-1:i+1][::-1]:start=i-max_len-1max_len+=2continueifi-max_len>=0ands[i-max_len:i+1]==s[i-max_len:i+1][::-1]:start=i-max_lenmax_len+=1returns[start:start+max_len]解析:動(dòng)態(tài)規(guī)劃的思想,遍歷每個(gè)字符,檢查以該字符為中心的最長(zhǎng)回文子串。時(shí)間復(fù)雜度為O(n^2)。2.答案:pythondefthree_sum(nums):nums.sort()n=len(nums)res=0foriinrange(n):ifi>0andnums[i]==nums[i-1]:continueleft,right=i+1,n-1whileleft<right:total=nums[i]+nums[left]+nums[right]iftotal==0:res+=1whileleft<rightandnums[left]==nums[left+1]:left+=1whileleft<rightandnums[right]==nums[right-1]:right-=1left+=1right-=1eliftotal<0:left+=1else:right-=1returnres解析:排序后使用固定指針法,對(duì)于每個(gè)元素,使用雙指針在剩余部分查找兩個(gè)數(shù)使得三數(shù)之和等于零。時(shí)間復(fù)雜度為O(n^2)。3.答案:pythondefhas_cycle(head):slow,fast=head,headwhilefastandfast.next:slow=slow.nextfast=fast.next.nextifslow==fast:returnslowreturnNone解析:使用快慢指針法,快指針每次移動(dòng)兩步,慢指針每次移動(dòng)一步,如果存在環(huán),快慢指針會(huì)相遇。時(shí)間復(fù)雜度為O(n)。4.答案:pythondefconvert_bst_to_doubly_linked_list(root):definorder(node):nonlocalprev,headifnotnode:returninorder(node.left)ifprev:prev.right=nodenode.left=prevelse:head=nodeprev=nodeinorder(node.right)prev,head=None,Noneinorder(root)head.left=prevprev.right=headreturnhead解析:中序遍歷二叉搜索樹,將節(jié)點(diǎn)依次連接成雙向鏈表。時(shí)間復(fù)雜度為O(n)。5.答案:pythondefis_happy(n):seen=set()whilen!=1andnnotinseen:seen.add(n)n=sum(int(digit)2fordigitinstr(n))returnn==1解析:通過計(jì)算每個(gè)數(shù)字的平方和,判斷是否進(jìn)入循環(huán)或變?yōu)?。時(shí)間復(fù)雜度為O(logn)。三、系統(tǒng)設(shè)計(jì)題1.答案:-數(shù)據(jù)結(jié)構(gòu):使用哈希表存儲(chǔ)長(zhǎng)鏈接和短鏈接的映射關(guān)系,使用隨機(jī)算法生成短鏈接(如base62編碼)。-算法:將長(zhǎng)鏈接轉(zhuǎn)換為固定長(zhǎng)度的短鏈接,如使用hash函數(shù)+base62編碼。-優(yōu)化方案:使用分布式緩存存儲(chǔ)熱點(diǎn)短鏈接,使用負(fù)載均衡分散請(qǐng)求。2.答案:-數(shù)據(jù)結(jié)構(gòu):使用哈希表存儲(chǔ)用戶信息

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論