递归的解法 时间:1590ms
public class Solution {
public int Fibonacci(int n) {
if(n==0)
return 0;
else if (n==1)
return 1;
else
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
dp,时间:17ms
public class Solution {
public int Fibonacci(int n) {
if(n==0)
return 0;
if(n==1)
return 1;
int n1=0,n2=1;
int r=0;
for(int i=2;i<=n;i++){
r=n1+n2;
n1=n2;
n2=r;
}
return r;
}
}
可以看到dp的速度要快很多,是因为它去除了很多重复的计算