如何从n个数组中找到一个数字(元素)数组,其总和与数字x完全相等(或几乎相等)。

时间:2014-09-28 06:43:46

标签: arrays algorithm data-structures sum dynamic-programming

如何从n个数组中找到一个数字(元素)数组,其总和几乎等于或等于数字x。 我使用递归实现。但这需要太多时间。请帮忙 有算法吗? 可以使用DP实现吗?如果是的如何? 例如: `

given Array a = { 43, 86, 12, 39, 58, 15, 9, 62, 40, 71 }

If x = 125;
ans : {39,15,71}
Here sum of ans = 125 (exactly)

for same array:
if x = 49
ans = { 39, 9} 
Here sum of ans 48. nearly equal

`

1 个答案:

答案 0 :(得分:1)

这是subset sum problem - 它的NP-Complete,但是有伪多项式时间动态规划算法和多项式时间近似算法