0
点赞
收藏
分享

微信扫一扫

动态规划攻略之:第 N 个泰波那契数

泰波那契序列 Tn 定义如下: 

T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2

给你整数 n,请返回第 n 个泰波那契数 Tn 的值。

示例1:

输入:n = 4
输出:4
解释:
T_3 = 0 + 1 + 1 = 2
T_4 = 1 + 1 + 2 = 4

示例2:

输入:n = 25

提示:

  • 0 <= n <= 37
  • 答案保证是一个 32 位整数,即 answer <= 2^31 - 1。

解题思路

根据题意可知,本题可使用动态规划的思路来解答此题。 推导过程如下:

  • 定义状态:T[i] 表示泰波那契数列的第 i 个数字;
  • 状态转移方程:T(N) = T(N - 1) + T(N - 2) + T(N 3), 其中 N >= 3;
  • 初始条件: T(0) = 0, T(1) = 1, T(2) = 1;

代码实现

class Solution {
public int tribonacci(int {
int[] arr = new int[38];
arr[0] = 0;
arr[1] = 1;
arr[2] = 1;

for (int i = 3; i <= n; i++){
arr[i] = arr[i-1] + arr[i-2] + arr[i-3];
}

return

最后

  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

关注公众号---​HelloWorld杰少​​

举报

相关推荐

0 条评论