泰波那契序列 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=
2t_4 =1+
1+2=
4
示例 2:
輸入:n =
25輸出:1389537
0 <= n <= 37
答案保證是乙個 32 位整數,即answer <= 2^31 - 1
。
這道題初看第一反應就是遞迴,一直遞迴到0,1,2然後返回。
class
solution
return
tribonacci
(n-3)+
tribonacci
(n-2)+
tribonacci
(n-1);
}}
然後,雖然能正確計算出來結果,但是leetcode返回超時,沒辦法,只能想想如何減少運算次數.對於遞迴來說,存在著重複計算,所以,我們主要做的就是減少這些不必要的重複計算,也就是快取所有已經計算過得資料。因為最多求到37,注意,這裡是下標37,所以我們就定義乙個大小為38的陣列,然後快取所有計算過的資料。
第二種:
public
inttribonacci
(int n)
return arr[n]
;}
遞迴2 第 N 個泰波那契數
泰波那契序列 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 輸出 138...
LeetCode 1137 第 N 個泰波那契數
泰波那契序列 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 輸出 138...
力扣 1137 第 N 個泰波那契數
泰波那契序列 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 輸出 138...