泰波那契序列 Tn 定义如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2
给你整数 n,请返回第 n 个泰波那契数 Tn 的值。
示例1:
输入:n = 4
输出:4
解释:
T_3 = 0 + 1 + 1 = 2
T_4 = 1 + 1 + 2 = 4
示例2:
输入:n = 25
提示:
- 0 <= n <= 37
- 答案保证是一个 32 位整数,即 answer <= 2^31 - 1。
解题思路
根据题意可知,本题可使用动态规划的思路来解答此题。 推导过程如下:
- 定义状态:T[i] 表示泰波那契数列的第 i 个数字;
- 状态转移方程:T(N) = T(N - 1) + T(N - 2) + T(N 3), 其中 N >= 3;
- 初始条件: T(0) = 0, T(1) = 1, T(2) = 1;
代码实现
class Solution {
public int tribonacci(int {
int[] arr = new int[38];
arr[0] = 0;
arr[1] = 1;
arr[2] = 1;
for (int i = 3; i <= n; i++){
arr[i] = arr[i-1] + arr[i-2] + arr[i-3];
}
return
最后
- 时间复杂度:O(n)
- 空间复杂度:O(1)
关注公众号---HelloWorld杰少