資料結構演算法刷題(學習筆記二)

2021-10-24 12:23:14 字數 1369 閱讀 9168

1.演算法時間複雜度

2.函式呼叫的時間複雜度分析

3.演算法的空間複雜度

4.線性表

給定乙個無重複元素的陣列 candidates 和乙個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。

candidates 中的數字可以無限制重複被選取

輸入:candidates = [2,3,6,7], target = 7,

所求解集為:

[[7],

[2,2,3]]

問題:

**如下:

candidates =[2

,3,5

]target =

8# 對初始列表進行簡化處理

candidates.sort(

)res =

# 記錄結果

# 刪除函式

defcandidates_del

(x, y)

: j =

0for i in x:

j = j +

1if i >= y:

del x[j:

]break

candidates_del(candidates, target)

# print(candidates)

# 完成簡化初始陣列

# 選取出列表中最小的作為判斷值t

t =min

(candidates)

n =len

(candidates)

# print(t)

defbacktrace

(rs_candidates, rs_target, curr_res, s)

:# 跳出條件

if rs_target ==0:

:])# print('成功路線')

# print(res)

return

elif rs_target < t:

# print('失敗路線')

return

for i in

range

(s, n)

:# print(rs_target)

)# print(curr_res)

# 刪除

# 開始回溯

backtrace(rs_candidates, rs_target - rs_candidates[i]

, curr_res, i)

curr_res.pop(

)# print(candidates)

backtrace(candidates, target,

,0)print

(res)

cc

資料結構演算法刷題 (學習筆記一)

輸入 k 2 n 4 輸出 12 13 14 23 24 34 組合 n input 請輸入n值 n 4 k input 請輸入k值 k 2 n 20 k 16 nums i for i in range 1 n 1 res print nums defbacktrace nums b,curr r...

資料結構和演算法 刷題 雜湊演算法

nums1 1,2,2,1 nums2 2,2 返回 2,2 雜湊是一種查詢演算法 from collections import counter from collections import defaultdict 不存在的key時 返回預設值 from collections import o...

演算法與資料結構 刷題日記

各種排序時間 空間複雜度 穩定性總結 一般把快排的空間複雜度看作o l ogn o logn o logn n個頂點的無向圖的鄰接矩陣有n個表頭節點,每個節點擊作乙個表頭,即可建立鄰接表。二叉排序樹 binary sort tree 或者是一棵空樹 或者是具有下列性質的二叉樹 憨憨題 若二叉樹用二叉...