39 組合總和

2021-10-03 21:37:35 字數 2304 閱讀 6984

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...