斐波那契数列的扩展版,具体看上一题
时间复杂度:O(n)
空间复杂度:O(1)
class Solution {
public:
int tribonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else if (n == 2) {
return 1;
}
int a = 0;
int b = 1;
int c = 1;
int d = 0;
n -= 2; // n是从0开始的 如果从1开始 n-=3
while (n--) {
d = a + b + c;
a = b;
b = c;
c = d;
}
return d;
}
};