//斐波那契數列
// 1.平均時間複雜度O(n^2),占用的額外空間O(n)
function fib(n){
if(n===1||n===2){
return 1;
}else{
return fib(n-1) + fib(n-2);
}
}
//2.平均時間複雜度O(n),占用的額外空間O(n)
function fib(n){
let res = [1,1];
for(let i=2;i<n;i++){
res[i] = res[i-1] + res[i-2];
}
return res[n-1];
}
//3.平均時間複雜度O(n),占用的額外空間O(1)
function fib(n){
let res,a,b;
res = a = b = 1;
for(var i=3;i<=n;i++){
res = a + b;
a = b;
b = res;
}
return res;
}