leetcode 377 組合總和

2021-10-09 08:24:50 字數 1172 閱讀 6661

給定乙個由正整數組成且不存在重複數字的陣列,找出和為給定目標正整數的組合的個數。

示例:

nums = [1, 2, 3]

target = 4

所有可能的組合為:

(1, 1, 1, 1)

(1, 1, 2)

(1, 2, 1)

(1, 3)

(2, 1, 1)

(2, 2)

(3, 1)

請注意,順序不同的序列被視作不同的組合。

因此輸出為 7。

不像組合總和、組合總和 ii、組合總和 iii是回溯的題目了,用回溯發現回超時,看標籤想到了dp

dp[i]來表示總和為i的組合數,則轉移方程:

d p[

i]=∑

k∈nu

msdp

[i−k

],i−

k>

0dp[i] = \sum_dp[i - k], \;\;i - k > 0

dp[i]=

k∈nu

ms∑​

dp[i

−k],

i−k>

0初始化dp[0] = 1

時間複雜度是o(m

n)

o(mn)

o(mn

),其中ntargetmnums的長度

class

solution

:def

combinationsum4

(self, nums: list[

int]

, target:

int)

->

int:

dp =[1

]+[0

]* target

for i in

range(1

, target +1)

:for each_num in nums:

if i - each_num >=0:

dp[i]

+= dp[i - each_num]

return dp[-1

]

LeetCode 377 組合總和

這道題目是在陣列中找到和為給定目標正整數的組合的個數,題目如下所示 這道題目就難在不限陣列中元素使用的個數,我們如果用窮舉的方法很難得到正確的答案。於是我們可以想到用動態規劃的思想來解決這個問題。首先我們求的是和,我們就可以把和進行拆分,如題目中的例子為例,num s 1 2,3 nums 1,2,...

LeetCode 377 組合總和

給定乙個由正整數組成且不存在重複數字的陣列,找出和為給定目標正整數的組合的個數。nums 1,2,3 target 4 所有可能的組合為 1,1,1,1 1,1,2 1,2,1 1,3 2,1,1 2,2 3,1 請注意,順序不同的序列被視作不同的組合。因此輸出為 7。class solution ...

leetcode377 組合總和4

給定乙個由正整數組成且不存在重複數字的陣列,找出和為給定目標正整數的組合的個數。示例 nums 1 2,3 target 4所有可能的組合為 1 1,1 1 1,1,2 1 2,1 1,3 2 1,1 2,2 3 1 請注意,順序不同的序列被視作不同的組合。因此輸出為 7。方法一 遞迴 超時 cla...