gpt4 book ai didi

java - 递归到迭代(java)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:45:18 29 4
gpt4 key购买 nike

作为编程初学者,我试图将以下递归方法转换为迭代方法,但我就是不明白它的窍门。该方法或函数有一个类似递归的二叉树,我想使用一个数组作为迭代解决方案。不幸的是,我很困惑如何去做。

我已经检查了将斐波那契递归方法转换为迭代方法的方法。但我认为这里不一样。另外我不确定树搜索方法是否有用?!任何帮助,提示,想法将不胜感激。谢谢。

public static int funct(int n) {

if (n == 0) return 1;
if (n == 1) return 2;
if n > 1 return funct(n-2)*funct(n/2);

}

最佳答案

如果您可以将所有内容缓存在一个列表中,那么之前每个第 n 个成员都由其他人计算过。您首先添加前 2 个已知成员。斐波那契更容易,因为你总是只需要以前的值(value)。

private static int func(int n) {
List<Integer> values = new ArrayList<>(n+1);
values.add(1);
values.add(2);
for (int i = 2; i <= n; i++) {
values.add(values.get(i - 2) * values.get(i / 2));
}

return values.get(n);
}

关于java - 递归到迭代(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39388404/

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