lintcode 135 數字組合

2022-03-29 17:11:45 字數 883 閱讀 5834

給出一組候選數字(c)和目標數字(t),找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。

例如,給出候選陣列[2,3,6,7]和目標數字7,所求的解為:

[7],

[2,2,3]

注意事項

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

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

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

樣例給出候選陣列[2,3,6,7]和目標數字7

返回 [[7],[2,2,3]]

標籤回溯法 陣列

思路

首先對候選數字排序、剔重,然後採取回溯和遞迴

code

class solution 

vector> result;

vectortemp;

sort(candidates.begin(), candidates.end());

candidates.erase(unique(candidates.begin(), candidates.end()), candidates.end());

combinationsum(candidates, temp, 0, 0, target, result);

return result;

}void combinationsum(vector&candidates, vector&temp, int sum, int current, int target, vector> &result)

else if(sum > target)

for(int i=current; i}

};

LintCode 135 數字組合 回溯法

給出一組候選數字 c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 注意事項 所有的數字 包括目標數字 均為正整數。元素組合 a1,a2,ak 必須是非降序 ie,a1 a2 ak...

兩次過 Lintcode 135 數字組合

給出乙個候選數字的set c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。給出候選set 2,3,6,7 和目標數字7 返回 7 2,2,3 經典的組合問題 需要注意的是 需要去重,因為題目要求unique combinations 需要提前排序,因為題目...

LintCode 數字組合

給出一組候選數字 c 和目標數字 t 找到c中所有的組合,使找出的數字和為t。c中的數字可以無限制重複被選取。例如,給出候選陣列 2,3,6,7 和目標數字7,所求的解為 7 2,2,3 您在真實的面試中是否遇到過這個題?yes 樣例給出候選陣列 2,3,6,7 和目標數字7 返回 7 2,2,3 ...