斐波那契数
迭代+缓存
-
图解:
-
复杂度:
- 时间复杂度:O(n);
- 空间复杂度:O(1);
-
代码实现:
function fib(n: number): number { if (n < 2) return n; let memo = [0, 1]; let res = 0; for (let i = 2; i <= n; i++) { res = memo[0] + memo[1]; memo[0] = memo[1]; memo[1] = res; } return res; }
递归+缓存
-
复杂度:
- 时间复杂度:O(n);
- 空间复杂度:O(n);
-
代码实现:
function fib(n: number): number { let list = [0, 1]; return reverse(list, n); } function reverse(memo: Array<number>, n: number): number { if (n < 2) return n; if (memo[n]) return memo[n]; memo[n] = reverse(memo, n - 1) + reverse(memo, n - 2); return memo[n]; }
打赏作者
您的打赏是我前进的动力
微信
支付宝
leetcode🧑💻 404. 左叶子之和
上一篇
评论