此题解采用迭代方法计算泰波那契数。首先初始化前三个泰波那契数 T0 = 0, T1 = 1, T2 = 1。针对 n 分别小于等于 0, 1, 2 的情况直接返回对应的泰波那契数值。对于 n 大于 2 的情况,使用一个 for 循环从 3 迭代到 n。在每次迭代中,计算当前泰波那契数为前三个数的和,然后更新这三个数,即使得 T0 = T1, T1 = T2, T2 = 新计算的和。最终,循环结束后返回 T2,即第 n 个泰波那契数。
时间复杂度: O(n)
空间复杂度: O(1)
class Solution:
def tribonacci(self, n: int) -> int:
# 初始化第0、1、2个泰波那契数
T0, T1, T2 = 0, 1, 1
# 针对特定小值直接返回结果
if n == 0:
return 0
elif n == 1 or n == 2:
return 1
# 从第3个数开始迭代计算到第n个数
for i in range(3, n + 1):
s = T1 + T2 + T0 # 计算当前泰波那契数
T0, T1, T2 = T1, T2, s # 更新三个数
# print(T0, T1, T2) # 可用于调试查看每步的值
return s # 返回第n个泰波那契数