1.用for循环来实现,时间复杂度为O(n),空间复杂度为O(1)
function fibonacci2(n) {
if (n <= 1) return n;
let a = 0;
let b = 1;
for (let i = 2; i <= n; i++) {
let temp = a + b;
a = b;
b = temp;
}
return b;
}
2.优雅一点的写法
const cache = [0, 1];
function fabonacci(n) {
return typeof cache[n] === 'number' ? cache[n] : cache[n] = fabonacci(n - 1) + fabonacci(n - 2);
}