1.关于斐波那契数列的算法
通常所写的算法都是递归算法,时间复杂度随着n的增大而指数级增加。考虑以下两种优化方式:
一、递归转化成循环
int fun(int n){
if (n == 0) return 0;
if (n == 1 || n == 2) return 1;
int f1 = 1, f2 = 1, fn;
for (int i = 3; i <= n; i++) {
fn = f1 + f2;
f1 = f2;
f2 = fn;
}
return fn;
}
二、记忆递归通项表达式
,直接带入即可。