第 N 个泰波那契数
迭代
-
复杂度:
- 时间复杂度:O(n);
- 空间复杂度:O(1);
-
代码实现:
function tribonacci(n: number): number { let memo = [0, 1, 1]; let res = 0; if (n < 3) return memo[n]; for (let i = 3; i <= n; i++) { res = memo[0] + memo[1] + memo[2]; memo[0] = memo[1]; memo[1] = memo[2]; memo[2] = res; } return res; }
递归
-
复杂度:
- 时间复杂度:O(n);
- 空间复杂度:O(n);
-
代码实现:
function tribonacci(n: number): number { var list = [0, 1, 1]; function reverse(memo, n) { if (n < 3) return list[n]; if (memo[n]) return memo[n]; memo[n] = reverse(memo, n - 1) + reverse(memo, n - 2) + reverse(memo, n - 3); return memo[n]; } return reverse(list, n); }
打赏作者
您的打赏是我前进的动力
微信
支付宝
面试题 08.06.汉诺塔问题
上一篇
评论