【发布时间】:2017-08-31 02:41:50
【问题描述】:
找出总和为特定值的所有子集。
给定一组数字:{1, 3, 9, 12} 和目标值 = 12。找到总和为目标值的不同子集。
回答:[3,9],[12]。
The problem has been asked here.
显然有两种方法可以解决这类问题。递归或DP。 问题:您如何权衡这两种方法?
我的解决方案:DP 更难,但消耗的内存更少。在递归中,您必须多次递归调用该函数,这引入了函数开销。但它“相当”容易,但会消耗更多内存。
你们觉得呢?
【问题讨论】:
-
DP 实际上消耗了 更多 内存,但它可以让您大量减少冗余(不必要的重复)计算的数量。
标签: algorithm recursion dynamic-programming memoization