gpt4 book ai didi

java - Java中的评估顺序

转载 作者:行者123 更新时间:2023-11-29 07:29:06 24 4
gpt4 key购买 nike

所以我有这个斐波那契数列的代码:

int fibonacci(int i, int[] memo) {
if (i == 0 || i == 1) return i;

if (memo[i] == 0) {
memo[i] = fibonacci(i - 1, memo) + fibonacci(i - 2, memo);
}

return(memo[i]);
}

我的问题是:fibonacci(i-1, memo) 总是在 fibonacci(i-2, memo) 之前求值,对吗?

最佳答案

正确,从从左到右

首先,您将使用左边的参数fibonacci(i - 1, memo) 完全遍历递归,然后,当它再次向上移动递归树时,每次都会计算右边的参数,再次使用完整的递归树。

快速搜索会得到这张说明该过程的图片:

Recursive Fibonacci computation order

请注意,许多值通常会计算多次。您当前的方法试图通过在数组 memo 中缓存结果来优化这一点。

关于java - Java中的评估顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45492252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com