39 組合總和 中等,陣列,遞迴)

2021-09-02 14:28:35 字數 931 閱讀 2487

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

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

說明:所有數字(包括 target)都是正整數。解集不能包含重複的組合。

示例 1:

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

所求解集為:

[[7],

[2,2,3]

]思路:

1.target要一次一次不斷的更新,因此需要遞迴

2.結果不要重複,防止出現【2,2,3】和【3,2,2】,所以要給陣列排序,依次向後挑選。

3.挑選時只選擇比過去挑過的大,因為陣列沒有重複值,所以不會出現重複的情況。

class solution:

def combinationsum(self, candidates, target):

""":type candidates: list[int]

:type target: int

:rtype: list[list[int]]

"""self.result= #類函式的全域性變數

candidates=sorted(candidates) #排序

self.dummy(candidates,target,,0)

return self.result

def dummy(self,candidates,target,s,corr):

if target==0:

if targettarget:

return

if i執行用時: 100 ms, 在combination sum的python3提交中擊敗了71.46% 的使用者

39 組合總和(中等題)

題目描述 給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 所有數字 包括 target 都是正整數。解集不能包含重複的組合。示例 1 輸入 c...

力扣 中等 39 組合總和

給定乙個無重複元素的陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的數字可以無限制重複被選取。說明 所有數字 包括 target 都是正整數。解集不能包含重複的組合。回溯 public list...

39 組合總和

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