39. 組合總和 【中等題】【回溯】給定乙個無重複元素的陣列 candidates 和乙個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。
candidates 中的數字可以無限制重複被選取。
說明:
輸入: candidates =[2
,3,6
,7], target =7,
所求解集為:[[
7],[
2,2,
3]]輸入: candidates =[2
,3,5
], target =8,
所求解集為:[[
2,2,
2,2]
,[2,
3,3]
,[3,5]]
方法一
【歷史重難點題目】
【思路】
【**】
public list
>
combinationsum
(int
candidates,
int target)
void
help
(int
candidates,
int start,
int end,
int target,list
list,list
> ans)
if(start>=end || target<0)
return
;help
(candidates,start+
1,end,target,list,ans)
; list.
add(candidates[start]);
help
(candidates,start,end,target-candidates[start]
,list,ans)
; list.
remove
(list.
size()
-1);
}
【備註】
public list
>
combinationsum
(int
candidates,
int target)
void
help
(int
candidates,
int start,
int end,
int target,list
list,list
> ans)
if(start>=end || target<0)
return
;help
(candidates,start+
1,end,target,list,ans);if
(target-candidates[start]
>=0)
}
方法二
【**】
public list
>
combinationsum
(int
candidates,
int target)
void
help
(list
> ans,list
cur,
int start,
int target,
int[
] candidates)
else}}
}
【備註】
public list
>
combinationsum
(int
candidates,
int target)
void
help
(list
> ans,list
cur,
int start,
int target,
int[
] candidates)
if(target<0)
return
;for
(int i=start ; i
)else
break;}
}
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...