动态编程:如何解决大输入量的所有组合有序硬币找零问题

时间:2018-11-25 19:02:51

标签: algorithm dynamic

我很难找到许多方法来从包含硬币的数组中获取给定数字的总和。例如:

硬币:{2,3,5,7}
总和:8
总计方式:6->(2 + 2 + 2 + 2),(2 + 3 + 3),(3 + 2 + 3),(3 + 3 + 2),(3 + 5)和(5 + 3)。

我有使用dp伪代码的解决方案:

build an array ar of size "sum"
ar[0]=1
for i = 1 to sum do:
    ar[i]=ar[i-2]+ar[i-3]+ar[i-5]+ar[i-7]
return ar[sum]

如前所述,此代码可以正常工作,但是我在其中运行的平台的总和可能高达10 19 ,并且可以预期,它使我超时。还有其他方法可以解决吗?我什至尝试减小超过大小i-largest value in coins的数组的大小。但这也超时了。

0 个答案:

没有答案
相关问题