【发布时间】:2020-09-22 03:39:59
【问题描述】:
我正在从hackerrank解决以下问题 https://www.hackerrank.com/challenges/coin-change/problem
我无法解决问题,所以我看了社论,他们提到了
T(i, m) = T(i, m-i)+T(i+1, m)
我无法全面了解此解决方案为何能在更高级别上发挥作用。 (如 CLRS 中的证明或简单易懂的示例)
我写的解决方案如下
fun(m){
//base cases
count = 0;
for(i..n){
count+= fun(m-i);
}
}
我的解决方案不起作用,因为有一些重复调用。但是编辑是如何工作的,我的解决方案和更高级别的编辑有什么区别..
【问题讨论】:
-
你确定这是公式吗?我觉得应该是
T(i, m) = T(i, m-i)+T(i - 1, m)... -
i 从 0 开始所以是 i+1
标签: algorithm recursion dynamic-programming