組合總和ii
給定乙個陣列 candidates 和乙個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。candidates 中的每個數字在每個組合中只能使用一次。
說明:1)所有數字(包括目標數)都是正整數。 2)解集不能包含重複的組合。
使用遞迴函式dfs(pos,res)來進行遞迴,pos表示在陣列的第pos位,res表示剩下的要組合的數之和,由於陣列中的數字在組合中只能使用一次,所以使用hashmap來進行去重,將陣列裡的元素對映成鍵值對儲存到freq裡,鍵表示數字,值表示數字出現的次數
class
solution);
}else
}dfs(0
,target)
;return ans;
}public
void
dfs(
int pos,
int rest)
if(pos==freq.
size()
||rest
get(pos)[0
])dfs(pos+
1,rest)
;int most=math.
min(rest/freq.
get(pos)[0
],freq.
get(pos)[1
]);for
(int i=
1;i<=most;
++i)
for(
int i=
1;i<=most;
++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...