避免传值递归方法中的重复:需要外部变量?

时间:2017-10-24 00:02:30

标签: java recursion memoization

在Java中编写递归函数并尝试避免重复的递归/结果时,我已经读过你需要包含一个Set that keeps track of what computation已经完成。看起来你不能将Set保持在递归函数的范围内,因为Java(pass-by-value)将沿着每个不同的分支传递Set的不同版本。

是否必须在方法外创建这样的Set?

1 个答案:

答案 0 :(得分:0)

简而言之:是的,它需要在比递归函数更广泛的范围内。

但是,既然我们正在跟踪计算,无论如何,为什么不采用动态编程方法进行记忆?在这种情况下,您可以完全避免递归。