組合總和II

2021-10-16 11:24:46 字數 885 閱讀 7487

組合總和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...