【LeetCode】第 N 个泰波那契数 Java 题解
题目描述
泰波那契序列 Tn 定义如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2
给你整数 n,请返回第 n 个泰波那契数 Tn 的值。
复制代码
思路分析
这是一个常见的题目,和斐波拉契数列是一类题目,因此解法也是通用的。
斐波那契数列(Fibonacci sequence),又称黄金分割数列。随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值 0.6180339887。
朴素的解法是采用递归,递归算法有大量的重复计算,时间复杂度较高。针对重复计算,可以采用记忆化思想进行优化,避免重复计算。
代码
复制代码
总结
上述代码的时间复杂度是 O(n), 空间复杂度是 O(n)
坚持每日一题,加油!
版权声明: 本文为 InfoQ 作者【HQ数字卡】的原创文章。
原文链接:【http://xie.infoq.cn/article/dbac68174cee81993d94400ea】。文章转载请联系作者。
评论