版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026山東聊城市城發(fā)建設(shè)集團(tuán)有限公司、聊城市城發(fā)資產(chǎn)運(yùn)營(yíng)有限公司、聊城旭坤數(shù)字技術(shù)有限公司招聘5人備考考試試題及答案解析
- 2026廣東江門市廣悅化工股份有限公司招聘80人備考考試題庫(kù)及答案解析
- 2026年度淄博沂源縣事業(yè)單位公開(kāi)招聘綜合類崗位工作人員(13人)考試備考試題及答案解析
- 2026廣東廣州銀行選聘參考考試題庫(kù)及答案解析
- 建業(yè)車庫(kù)施工方案(3篇)
- 新店酒館活動(dòng)策劃方案(3篇)
- 車庫(kù)轉(zhuǎn)盤施工方案(3篇)
- 物流機(jī)械維護(hù)室管理制度(3篇)
- 飛機(jī)培訓(xùn)課件
- 2026浙江金華市永康市數(shù)字五金園區(qū)發(fā)展有限公司招聘派遣制人員1人備考考試題庫(kù)及答案解析
- 運(yùn)輸人員教育培訓(xùn)制度
- 升降貨梯買賣安裝與使用說(shuō)明書(shū)合同
- 河南豫能控股股份有限公司及所管企業(yè)2026屆校園招聘127人考試備考題庫(kù)及答案解析
- 房地產(chǎn)公司2025年度總結(jié)暨2026戰(zhàn)略規(guī)劃
- 物業(yè)管家客服培訓(xùn)課件
- 虛假貿(mào)易十不準(zhǔn)培訓(xùn)課件
- 中央空調(diào)多聯(lián)機(jī)施工安全管理方案
- 【初中 地理】2025-2026學(xué)年人教版七年級(jí)上冊(cè)地理期末復(fù)習(xí)提綱
- 2026年撫順師范高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫(kù)附答案
- GB/T 46692.2-2025工作場(chǎng)所環(huán)境用氣體探測(cè)器第2部分:有毒氣體探測(cè)器的選型、安裝、使用和維護(hù)
- 2025人機(jī)共育向善而為:AI時(shí)代的教育變革探索指南
評(píng)論
0/150
提交評(píng)論