DFS 40 組合總和 II

2022-09-06 01:00:17 字數 1109 閱讀 4209

給定乙個陣列 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]

]

示例 2:

輸入: candidates = [2,5,2,1,2], target = 5,

所求解集為:

[ [1,2,2],

[5]]

思路:

上一題的公升級版?給定的陣列元素允許重複了,上一題沒有重複,上一題可以重複利用,這題不能重複利用

基本都一樣,不多說了,盤他

class

solution

private

void dfs(int len, int target, int first, boolean isvisited, list> res, dequepath, int

candidates)

for (int i = first; i < len; i++)

if (target if(isvisited[i])

path.add(candidates[i]);

isvisited[i] = true

; dfs(len, target -candidates[i], i, isvisited, res, path, candidates);

isvisited[i] = false

; path.remove(candidates[i]);}}

}

好像確實難了一點

40 組合總和 II

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

40 組合總和 II

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

40 組合總和 II

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