给出一个候选数字的集合 C 和目标数字 T,写一个函数找到 C 中所有的组合,使找出的数字和为 T。C 中的数字可以无限制重复被选取。
注意事项:
1、所有的数字(包括目标数字)均为正整数。
2、元素组合(a1, a2, … , ak)必须是非降序(ie, a1 ≤ a2 ≤ … ≤ ak)。
3、解集不能包含重复的组合。
格式:
输入行每一行输入数组 C 和一个目标数字 T,最后输出所有满足条件的组合。
样例输入
C = [ 2,3,6,7 ]
T = 7
样例输出
[ [ 7 ],[ 2,2,3 ] ]
先将C从小到大排序,然后创建一个栈,然后向栈中由小到大填入数字,每填一次就将栈中的数字的和与目标T进行比较,如果和大于T,就抛出然后反向由大到小填入数字将和进行比较,直到有一个数X使得栈中的和等于T。 然后将X作为下一个T进行计算。 先记录一下想法。