地址: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