40 組合總和 II

2021-10-07 05:32:00 字數 1091 閱讀 8266

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

這個題用dfs暴力求解,因為可能有重複統計的出現,比如1,2;2,1的,所以要先排序然後從前往後遍歷。另外對可能出現的重複數字,比如目標為11時,5,5,6,也只能統計成乙個,所以要判斷一下相鄰的是否相等。

class solution 

arrays.sort(candidates);

listcombination = new arraylist();

dfs(candidates,0,combination,target,results);

return results;

}public void dfs(int candidates, int startindex,listcombination,int target,list> results)

for(int i = startindex; i < candidates.length; i++)

if(target < candidates[i])

combination.add(candidates[i]);

dfs(candidates,i + 1,combination,target - candidates[i],results);

combination.remove(combination.size() - 1);}}

}

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 輸入 candida...