functribonacci(n int)int{if n ==0{return0}if n <3{return1}a, b, c :=0,1,1for i :=3; i <= n; i++{a, b, c = b, c, a+b+c}return c
}
二、算法分析
1. 核心思路
空间优化迭代:仅维护三个变量滚动计算
递推公式:Tₙ = Tₙ₋₁ + Tₙ₋₂ + Tₙ₋₃
边界处理:直接返回n=0、1、2的初始值
2. 关键步骤
特殊值处理:n=0返回0,n=1/2返回1
初始化状态:a=T₀, b=T₁, c=T₂
迭代计算:每次循环更新三个变量值
结果返回:最终c即为所求Tₙ
3. 复杂度
指标
值
说明
时间复杂度
O(n)
线性遍历到目标位置
空间复杂度
O(1)
仅使用固定数量变量
三、图解示例
四、边界条件与扩展
1. 特殊场景验证
n=0:返回0
n=1/2:直接返回1
大数测试:n=25→1389537
极小值测试:n=3→2
2. 扩展应用
密码学:生成特定模式的加密序列
金融预测:模拟具有三阶递推特征的波动
游戏设计:生成自然增长的数值体系
3. 多语言实现
classSolution{publicinttribonacci(int n){if(n ==0)return0;if(n <3)return1;int a =0, b =1, c =1;for(int i =3; i <= n; i++){int temp = a + b + c;a = b;b = c;c = temp;}return c;}}
classSolution:deftribonacci(self, n:int)->int:if n ==0:return0if n <3:return1a, b, c =0,1,1for _ inrange(3, n+1):a, b, c = b, c, a+b+creturn c