組合總和 II

2021-10-21 03:30:06 字數 958 閱讀 6452

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

candidates 中的每個數字在每個組合中只能使用一次。

說明:所有數字(包括目標數)都是正整數。

解集不能包含重複的組合。

示例 1:

輸入: candidates = [10,1,2,7,6,1,5], target = 8,

所求解集為:

[[1, 7],

[1, 2, 5],

[2, 6],

[1, 1, 6]

]同樣,這道題一看也要用到遞迴。那麼具體怎麼做呢?思路是一開始先對candidates做排序。然後做統計,每個數出現了多少次。又因為不能包含重複的組合,所以需要在迴圈中做處理。具體看**:

class

solution);

}else

}dfs(0

, target)

;return ret;

}public

void

dfs(

int idx,

int target)

if(idx == freq.

size()

|| target <0)

dfs(idx +

1, target)

;int

curarr = freq.

get(idx)

;int maxnum = math.

min(target / curarr[0]

, curarr[1]

);for(

int i =

1; i <= maxnum;

++i)

for(

int i =

0; i < maxnum;

++i)

}}

組合總和II

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

組合總和 II

給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。說明 所有數字 包括目標數 都是正整數。解集不能包含重複的組合。示例 1 輸入 candidates 1...

組合總和 II

問題描述 給定乙個陣列 candidates 和乙個目標數 target 找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。說明 所有數字 包括目標數 都是正整數。解集不能包含重複的組合。示例 1 輸入 candida...