陣列 數字組合II 中等

2021-08-20 13:47:38 字數 762 閱讀 9125

描述

給出一組候選數字(c)和目標數字(t),找出c中所有的組合,使組合中數字的和為t。c中每個數字在每個組合中只能使用一次。

所有的數字(包括目標數字)均為正整數。

元素組合(a1, a2, … , ak)必須是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。

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

樣例給出乙個例子,候選數字集合為[10,1,6,7,2,1,5] 和目標數字 8  ,

解集為:[[1,7],[1,2,5],[2,6],[1,1,6]]

題目鏈結

分析

先排序,然後遞迴呼叫,在滿足num.size() == 0  || target <= 0條件時,遞迴結束。最後因為裡面含有重複的元素,所以刪除掉重複的即可。

程式

class solution 

vectorb;

b.assign(num.begin()+1, num.end());

tmp.push_back(num[0]);

combinationsum(b, target-num[0]);

tmp.pop_back();

combinationsum(b, target);

}vector> combinationsum2(vector&num, int target)

};

153 數字組合 II

153.數字組合 ii 給出一組候選數字 c 和目標數字 t 找出c中所有的組合,使組合中數字的和為t。c中每個數字在每個組合中只能使用一次。注意事項 您在真實的面試中是否遇到過這個題?yes 樣例給出乙個例子,候選數字集合為 10,1,6,7,2,1,5 和目標數字8,解集為 1,7 1,2,5 ...

153 數字組合 II

153.數字組合 ii 給定乙個陣列 num 和乙個整數 target.找到 num 中所有的數字之和為 target 的組合.樣例樣例 1 輸入 num 7,1,2,5,1,6,10 target 8 輸出 1,1,6 1,2,5 1,7 2,6 樣例 2 輸入 num 1,1,1 target ...

數字組合問題

題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。方法一 列出取值範圍內所有資料,分別檢查是否符合條件 public static void calculatenum1...