【发布时间】:2018-09-24 03:17:05
【问题描述】:
有没有办法让这个程序运行得更快?它已经比我尝试制作的 HashMap 版本快,但根据我提交的位置,它在 45 分左右仍然太慢。我可以做任何修改来改进它吗?
import java.util.Scanner;
public class Fibo {
static long[] cache;
static long ans;
public static long fibo(int n) {
if (n == 0)
return 1;
if (n < 2)
ans = 1;
else
ans = fibo(n - 1) + fibo(n - 2);
cache[n - 1] = ans;
return ans;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("test");
int num = input.nextInt();
input.close();
cache = new long[num];
long ans = fibo(num);
System.out.println(ans);
}
}
【问题讨论】:
-
您实际上从未在
cache中执行任何查找,还是我遗漏了什么? -
Fibo() 只从你的 main 方法调用一次,缓存从未真正使用过
标签: java recursion fibonacci memoization