斐波那契数列:
f(n)=0 n=0;
f(n)=1 n=1;
f(n)=f(n-1)+f(n-2) n>1;
用递归有严重的效率问题:
f(10)
f(9) f(8)
f(8) f(7) f(7) f(6)
f(7) f(6) f(6) f(5) 。。。
树节点大量重复,时间复杂度以n 的指数的方式递增。
解法一:
if(n==0){
return 0;
}else if(n==1){
return 1;
}else{
int a=0;
int b=0;
int c=1;
for(int i=2;i<=n;i++){
a=b+c;
b=c;
c=a;
}
return a;
}
时间复杂度:O(n)