6 組合總和

2022-09-19 15:54:11 字數 1234 閱讀 4928

給你乙個無重複元素的整數陣列candidates和乙個目標整數target,找出candidates中可以使數字和為目標數target的所有不同組合,並以列表形式返回。你可以按任意順序返回這些組合。

candidates中的同乙個 數字可以無限制重複被選取。如果至少乙個數字的被選數量不同,則兩種組合是不同的。 

對於給定的輸入,保證和為target的不同組合數少於150個。

時間複雜度:

o(s):

其中s為所有可行解的長度之和。

o(n*2的n次方)是乙個比較松的上界,因為n個位置每次考慮選或者不選,如果符合條件,就加入答案的時間代價。

但是實際執行的時候,因為不可能所有的解都滿足條件,遞迴的時候還會使用target-candidates[idx]>=0進行剪枝,所以實際運**況是遠遠小於上界。

空間複雜度:

o(target)

除了答案陣列之外,空間複雜度取決於遞迴的棧深度,在最差的情況下需要遞迴o(target)層

示例一:

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

輸出:[[2,2,3],[7]]

解釋:2 和 3 可以形成一組候選,2 + 2 + 3 = 7 。注意 2 可以使用多次。

7 也是乙個候選, 7 = 7 。

僅有這兩種組合。

示例二:

輸入: candidates = [2,3,5], target = 8

輸出: [[2,2,2,2],[2,3,3],[3,5]]

示例三:

輸入: candidates = [2], target = 1

輸出:

39 組合總和

給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2...

39 組合總和

給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 示例 1 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 示例 2 ...

39 組合總和

給定乙個無重複元素的陣列candidates和乙個目標數target,找出candidates中所有可以使數字和為target的組合。candidates中的數字可以無限制重複被選取。說明 輸入 candidates 2,3,6,7 target 7,所求解集為 7 2,2,3 輸入 candida...