memoized递归解决方案是否具有与非递归解决方案相同的复杂性?我认为大多数时候递归解决方案会花费更多但是使用memoization技术我真的不明白为什么我不应该总是使用递归?它更短,更容易理解
接口问题 - 是否可以声明一个强制使用该接口的人在其中应用部分代码的函数?或者我只能声明函数的签名,就是这样吗?因为在android中我可以实现监听器,在方法内部,我看到我无法改变的代码行,这与我习惯的常规实现不同
答案 0 :(得分:1)
关于动态编程,您有两种选择:上下方法(带记忆的递归)和自下而上的方法。自下而上的方法使用循环构建查找数组,因此它比递归更有效,这会花费堆栈分配并消耗时间。通过递归记忆,您只需“记住”您找到的解决方案,这样您就不会一次又一次地重新计算同一个问题。因此,在解决问题之前,先检查当前问题是否已解决。这是它与回溯之间的区别,它重复解决相同的问题,因此需要重复次数。