Skip to content

Latest commit

 

History

History
68 lines (49 loc) · 1.18 KB

leecode1137.md

File metadata and controls

68 lines (49 loc) · 1.18 KB

1137. 第 N 个泰波那契数

地址:https://leetcode-cn.com/problems/n-th-tribonacci-number/

题目描述

泰波那契序列 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
输出:1389537

我的解法

动态规划

class Solution:
    def tribonacci(self, n: int) -> int:
        if n <=2:
            return 0 if n == 0 else 1
        pre_1,pre_2,pre_3,res = 1,1,0,0
        for i in range(3,n+1):
            res = pre_1 +pre_2 + pre_3
            pre_3,pre_2,pre_1 = pre_2,pre_1,res
        return res

参考解法

class Solution:
    def tribonacci(self, n) :
        if n == 0 :
            return 0
        elif n == 2 or n == 1  :
            return 1  
        else:
            # return self.tribonacci(n-1) + self.tribonacci(n-2) + self.tribonacci(n-3)
            a = 0
            b = 1
            c = 1
            for _ in range(3, n+1) :
                a,b,c = b,c,a+b+c
            return c