题目描述
泰波那契序列 Tn 定义如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2
给你整数 n,请返回第 n 个泰波那契数 Tn 的值。
递归解法
class Solution {
public int tribonacci(int n) {
if(n==0){
return 0;
}else if(n==1){
return 1;
}else if(n==2){
return 1;
}else{
return tribonacci(n-1)+tribonacci(n-2)+tribonacci(n-3);
}
}
}
时间复杂度很高,超出时间限制
循环解法
class Solution {
public int tribonacci(int n) {
if(n==0){
return 0;
} else if(n==1||n==2){
return 1;
}
int a = 0;
int b = 1;
int c = 1;
int d = 0;
for(int i=3;i<=n;i++){
d = a+b+c;
a=b;
b=c;
c=d;
}
return d;
}
}