给定一个数组,求数组中所有元素的可能组合(每个元素只出现一次),使其和等于给定数的解决办法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yaoweijq/article/details/5948344

只求一个组合可以采用背包问题的思路,求所有组合的话,背包问题可能就不太适用了。

这里面采用暴力搜索+剪枝,具体是先对给定的数组进行排序,在求解的深度优先搜索过程

中,如果出现中间的求和结果大于预先给定的数,那么就不用继续搜索了(因为后面的元素都大于

等于当前的元素,不用再往后搜索了)。

以前也写过类似的程序,但只是针对具体问题的,

这里修改了下,

给出一个比较通用的代码:

展开阅读全文

没有更多推荐了,返回首页