泰波那契序列 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
第一種遞迴
提交失敗 超出時間限制
第二種非遞迴:
用陣列儲存前三項以及每一步計算結果,需要時可以直接取出
int
tribonacci
(int n)
return a[n];}
}
第三種 非遞迴優化
泰波那契數列中,新的一項需要借助前三項的值得到,例如t(6) = t(5)+t(4)+t(3),在第二種解法中,我們卻將t(0)、t(1)、t(2)的值都存起來了,但是計算t(6)又用不到t(0)、t(1)、t(2),浪費了儲存空間。對此,我們可以使用區域性變數替換陣列,只保留前三項的值,每次計算完新的一項值後,更新一次前三項的值即可。
void
tribonaqi
(int i)
return temp;
}}
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...
5139 第 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 2t 4 1 1 2 4示例 2 輸入 n 25輸出 1389537...
1137 第 N 個泰波那契數(迭代 記憶性遞迴)
1.問題描述 泰波那契序列 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...