fish-stack / Algo

算法相关的话题
0 stars 0 forks source link

1137. 第 N 个泰波那契数 #17

Open bitfishxyz opened 5 years ago

bitfishxyz commented 5 years ago

泰波那契序列 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
输出:1389537

提示:

bitfishxyz commented 5 years ago

解析

和计算斐波那契数一样,需要缓存每次计算的结果。

Java

class Solution {
    public int tribonacci(int n) {
        if (n == 0){
            return 0;
        }
        if (n == 1 || n == 2){
            return 1;
        }

        int currentValue = 0;

        // 当前泰波那契数 前1个位置的数
        int previous1 = 1;

        // 当前泰波那契数 前2个位置的数
        int previous2 = 1;

        // 当前泰波那契数 前2个位置的数
        int previous3 = 0;

        for (int i = 3; i <= n; i++) {
            currentValue = previous1 + previous2 + previous3;
            previous3 = previous2;
            previous2 = previous1;
            previous1 = currentValue;
        }
        return currentValue;
    }
}

纪念碑

hello 2019-08-01 at 5 33 14 PM