The Tribonacci sequence Tn is defined as follows:
T0 = 0, T1 = 1, T2 = 1, and Tn+3 = Tn + Tn+1 + Tn+2 for n >= 0.
Given n, return the value of Tn.
Example 1:
Input: n = 3
Output: 2Explanation:
T_3 = 0 + 1 + 1 = 2
Example 2:
Input: n = 21
Output: 121415Constraints:
0 <= n <= 37answer <= 2^31 - 1.class Solution:
def tribonacci(self, n: int) -> int:
if n <= 2:
return 1 if n != 0 else 0
return self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)class Solution:
def __init__(self):
self.dp = {}
def tribonacci(self, n: int) -> int:
if n <= 2:
return 1 if n != 0 else 0
if n in self.dp:
return self.dp[n]
self.dp[n] = self.tribonacci(n - 1) + self.tribonacci(n - 2) + self.tribonacci(n - 3)
return self.dp[n]class Solution:
def tribonacci(self, n: int) -> int:
if n <= 2:
return 1 if n != 0 else 0
dp = [0] * (n + 1)
dp[1] = dp[2] = 1
for i in range(3, n + 1):
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
return dp[n]class Solution:
def tribonacci(self, n: int) -> int:
t = [0, 1, 1]
if n < 3:
return t[n]
for i in range(3, n + 1):
t[i % 3] = sum(t)
return t[n % 3]