目录
题目顾名思义,让我们求出第N个泰波那契数,也就是除了开头三个数之外,第四个数开始就是等于前三个数之和。
不要和斐波那契数弄混了。
斐波那契是前两个数的和,泰波那契是前三个数的和。
也就是说当前数,我们可以通过之前的数来推断出,也就是可以使用动态规划。
并且递推公式人家题目都给了,就是前三个数的和,而且最开始的三个数也给了。我们就直接初始化dp数组的前三个数,然后开始用递推公式递推出第K个泰波那契数即可。
- class Solution {
- public:
- int tribonacci(int n) {
- vector<int> dp(3,1);
- dp[0]=0;
- while(dp.size()<=n){
- dp.push_back(*(dp.end()-1)+*(dp.end()-2)+*(dp.end()-3)) ;
- }
- return dp[n];
- }
- };