給定乙個無重複元素的陣列 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...