在Java中编写递归函数并尝试避免重复的递归/结果时,我已经读过你需要包含一个Set that keeps track of what computation已经完成。看起来你不能将Set保持在递归函数的范围内,因为Java(pass-by-value)将沿着每个不同的分支传递Set的不同版本。
是否必须在方法外创建这样的Set?
答案 0 :(得分:0)
简而言之:是的,它需要在比递归函数更广泛的范围内。
但是,既然我们正在跟踪计算,无论如何,为什么不采用动态编程方法进行记忆?在这种情况下,您可以完全避免递归。