給定乙個無重複元素的陣列 candidates 和乙個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。
candidates 中的數字可以無限制重複被選取。
說明:所有數字(包括 target)都是正整數。
解集不能包含重複的組合。
示例 1:
輸入:candidates = [2,3,6,7], target = 7,
所求解集為:
[[7],
[2,2,3]
]示例 2:
輸入:candidates = [2,3,5], target = 8,
所求解集為:
[[2,2,2,2],
[2,3,3],
[3,5]
]1 <= candidates.length <= 30
1 <= candidates[i] <= 200
candidate 中的每個元素都是獨一無二的。
1 <= target <= 500
classsolution:
def combinationsum(self, candidates: list[int], target: int) ->list[list[int]]:
size=len(candidates)
if size<=0:
return
candidates.sort()
path=
res=
self._find_path(target,path,res,candidates,0,size)
return
res
def_find_path(self,target,path,res,candidates,begin,size):
if target==0:
else
:
for i in
range(begin,size):
left=target-candidates[i]
if left<0:
break
self._find_path(left,path,res,candidates,i,size)
path.pop()
classsolution
private
void backtrack(list> list, listtemplist, int nums, int remain, int
start)}}
}
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...