2026年智能科技公司春季招聘編程題庫(kù)代碼邏輯與算法題集_第1頁(yè)
2026年智能科技公司春季招聘編程題庫(kù)代碼邏輯與算法題集_第2頁(yè)
2026年智能科技公司春季招聘編程題庫(kù)代碼邏輯與算法題集_第3頁(yè)
2026年智能科技公司春季招聘編程題庫(kù)代碼邏輯與算法題集_第4頁(yè)
2026年智能科技公司春季招聘編程題庫(kù)代碼邏輯與算法題集_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2026年智能科技公司春季招聘編程題庫(kù):代碼邏輯與算法題集1.數(shù)組與字符串操作題(共4題,每題10分)1.1數(shù)組旋轉(zhuǎn)(10分)題目:給定一個(gè)數(shù)組`nums`和一個(gè)整數(shù)`k`,將數(shù)組向右旋轉(zhuǎn)`k`步。例如,`nums=[1,2,3,4,5]`,`k=2`,旋轉(zhuǎn)后的數(shù)組為`[4,5,1,2,3]`。要求:-時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。1.2字符串最長(zhǎng)重復(fù)子串(10分)題目:給定一個(gè)字符串`s`,返回其中最長(zhǎng)的重復(fù)子串的長(zhǎng)度。例如,`s="ababffababff"`,最長(zhǎng)的重復(fù)子串為"abab",長(zhǎng)度為4。要求:-使用動(dòng)態(tài)規(guī)劃或后綴數(shù)組等方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。1.3數(shù)組中和為K的3個(gè)數(shù)的組合(10分)題目:給定一個(gè)整數(shù)數(shù)組`nums`和一個(gè)目標(biāo)值`target`,返回所有和為`target`的三元組。例如,`nums=[-1,0,1,2]`,`target=0`,解為`[(-1,0,1)]`。要求:-不能有重復(fù)的三元組。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。1.4字符串匹配(10分)題目:實(shí)現(xiàn)一個(gè)函數(shù),判斷字符串`s`是否包含字符串`p`的所有字符(不要求順序)。例如,`s="hello"`,`p="eo"`,返回`true`。要求:-時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。2.樹(shù)與圖算法題(共3題,每題15分)2.1二叉樹(shù)的最大深度(15分)題目:給定一個(gè)二叉樹(shù),返回其最大深度。例如,二叉樹(shù)`[3,9,20,null,null,15,7]`的最大深度為3。要求:-使用遞歸或迭代方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。2.2無(wú)向圖連通分量(15分)題目:給定一個(gè)無(wú)向圖(用鄰接矩陣表示),返回其連通分量的數(shù)量。例如,圖`[[1,1,0],[1,1,0],[0,0,1]]`的連通分量數(shù)量為2。要求:-使用深度優(yōu)先搜索(DFS)或廣度優(yōu)先搜索(BFS)解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。2.3最小路徑和(15分)題目:給定一個(gè)二維網(wǎng)格`grid`,返回從左上角到右下角的最小路徑和。每次只能向下或向右移動(dòng)。例如,`grid=[[1,3,1],[1,5,1],[4,2,1]]`,最小路徑和為7(1→3→1→1→1)。要求:-使用動(dòng)態(tài)規(guī)劃方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。3.動(dòng)態(tài)規(guī)劃與貪心算法題(共3題,每題15分)3.1爬樓梯問(wèn)題(15分)題目:假設(shè)你正在爬樓梯,每次可以爬1或2級(jí),給定樓梯總數(shù)`n`,返回到達(dá)頂部的不同方法數(shù)。例如,`n=3`,方法數(shù)為3(1+1+1,1+2,2+1)。要求:-使用動(dòng)態(tài)規(guī)劃或數(shù)學(xué)方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。3.2零錢兌換(15分)題目:給定一個(gè)整數(shù)數(shù)組`coins`和一個(gè)總金額`amount`,返回湊出總金額的最少硬幣數(shù)量。例如,`coins=[1,2,5]`,`amount=11`,最少需要3個(gè)硬幣(5+5+1)。要求:-使用動(dòng)態(tài)規(guī)劃方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。3.3分發(fā)糖果(15分)題目:給定一個(gè)評(píng)分?jǐn)?shù)組`ratings`,每個(gè)學(xué)生必須獲得至少1個(gè)糖果,評(píng)分高的學(xué)生右側(cè)鄰居必須獲得更多或相等的糖果,返回滿足條件的最少糖果數(shù)量。例如,`ratings=[1,0,2]`,最少糖果為[2,1,2]。要求:-使用貪心算法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。4.位運(yùn)算與數(shù)學(xué)題(共2題,每題20分)4.1交換兩個(gè)數(shù)字(不使用臨時(shí)變量)(20分)題目:給定兩個(gè)整數(shù)`a`和`b`,交換它們的值,不使用臨時(shí)變量。例如,`a=5`,`b=3`,交換后`a=3`,`b=5`。要求:-使用位運(yùn)算方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。4.2求平方根(不使用庫(kù)函數(shù))(20分)題目:給定一個(gè)非負(fù)整數(shù)`x`,返回它的平方根的整數(shù)部分。例如,`x=8`,返回2。要求:-使用二分查找方法解決。-請(qǐng)編寫(xiě)函數(shù)實(shí)現(xiàn)該功能,并給出測(cè)試用例。答案與解析1.數(shù)組與字符串操作題1.1數(shù)組旋轉(zhuǎn)(10分)答案:pythondefrotate(nums,k):n=len(nums)k=k%nnums[:]=nums[-k:]+nums[:-k]解析:-將數(shù)組分為兩部分:`nums[-k:]`和`nums[:-k]`,然后拼接。-時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。1.2字符串最長(zhǎng)重復(fù)子串(10分)答案:pythondeflongest_repeating_substring(s):n=len(s)dp=[[0](n+1)for_inrange(n+1)]max_len=0end_idx=0foriinrange(1,n+1):forjinrange(i+1,n+1):ifs[i-1]==s[j-1]:dp[i][j]=dp[i-1][j-1]+1ifdp[i][j]>max_len:max_len=dp[i][j]end_idx=ireturns[end_idx-max_len:end_idx]解析:-使用動(dòng)態(tài)規(guī)劃,`dp[i][j]`表示以`s[i-1]`和`s[j-1]`結(jié)尾的最長(zhǎng)重復(fù)子串長(zhǎng)度。-最終結(jié)果為`s[end_idx-max_len:end_idx]`。1.3數(shù)組中和為K的3個(gè)數(shù)的組合(10分)答案: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解析:-先排序,然后使用雙指針?lè)ā?避免重復(fù)的三元組。1.4字符串匹配(10分)答案:pythondefcheck_inclusion(s,p):iflen(p)>len(s):returnFalsecounter_p,counter_s=[0]26,[0]26forcharinp:counter_p[ord(char)-ord('a')]+=1foriinrange(len(s)):counter_s[ord(s[i])-ord('a')]+=1ifi>=len(p):counter_s[ord(s[i-len(p)])-ord('a')]-=1ifcounter_p==counter_s:returnTruereturnFalse解析:-使用滑動(dòng)窗口和計(jì)數(shù)數(shù)組。-時(shí)間復(fù)雜度O(n),空間復(fù)雜度O(1)。2.樹(shù)與圖算法題2.1二叉樹(shù)的最大深度(15分)答案:pythondefmax_depth(root):ifnotroot:return0return1+max(max_depth(root.left),max_depth(root.right))解析:-遞歸計(jì)算左子樹(shù)和右子樹(shù)的最大深度。2.2無(wú)向圖連通分量(15分)答案:pythondefcount_components(n,edges):parent=list(range(n))deffind(x):ifparent[x]!=x:parent[x]=find(parent[x])returnparent[x]defunion(x,y):fx,fy=find(x),find(y)iffx!=fy:parent[fx]=fyforx,yinedges:union(x,y)returnlen(set(find(x)forxinrange(n)))解析:-使用并查集算法。-最終連通分量的數(shù)量為不同根節(jié)點(diǎn)的數(shù)量。2.3最小路徑和(15分)答案:pythondefmin_path_sum(grid):ifnotgrid:return0m,n=len(grid),len(grid[0])dp=[[0]nfor_inrange(m)]dp[0][0]=grid[0][0]foriinrange(1,m):dp[i][0]=dp[i-1][0]+grid[i][0]forjinrange(1,n):dp[0][j]=dp[0][j-1]+grid[0][j]foriinrange(1,m):forjinrange(1,n):dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i][j]returndp[-1][-1]解析:-使用動(dòng)態(tài)規(guī)劃,`dp[i][j]`表示到達(dá)`(i,j)`的最小路徑和。3.動(dòng)態(tài)規(guī)劃與貪心算法題3.1爬樓梯問(wèn)題(15分)答案:pythondefclimbStairs(n):ifn==1:return1dp=[0](n+1)dp[1],dp[2]=1,2foriinrange(3,n+1):dp[i]=dp[i-1]+dp[i-2]returndp[n]解析:-使用動(dòng)態(tài)規(guī)劃,`dp[i]`表示到達(dá)第`i`級(jí)的方法數(shù)。3.2零錢兌換(15分)答案:pythondefcoinChange(coins,amount):dp=[amount+1](amount+1)dp[0]=0foriinrange(1,amount+1):forcoinincoins:ifi>=coin:dp[i]=min(dp[i],dp[i-coin]+1)returndp[amount]ifdp[amount]!=amount+1else-1解析:-使用動(dòng)態(tài)規(guī)劃,`dp[i]`表示湊出金額`i`的最少硬幣數(shù)量。3.3分發(fā)糖果(15分)答案:pythondefcandy(ratings):n=len(ratings)candies=[1]nforiinrange(1,n):ifratings[i]>ratings[i-1]:candies[i]=candies[i-1]+1foriinrange(n-2,-1,-1):ifratings[i]>ratings[i+1]:candies[i]=max(candies[i],candies[i+1]+1)returnsum(candies)解析:-先從左到右遍歷,再?gòu)挠业阶蟊闅v,確保滿足條件。4.位運(yùn)算與數(shù)學(xué)題4.1交換兩個(gè)數(shù)字(不使用臨時(shí)變量)(20分)答案:pythondefswap(a,b):a=a^bb=a^ba=a^breturna,b解析:-使用位異或運(yùn)算交換兩個(gè)數(shù)。4.2求平方根(不使

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論