递归2:第 N 个泰波那契数
生活随笔
收集整理的這篇文章主要介紹了
递归2:第 N 个泰波那契数
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
泰波那契序列 Tn 定義如下:
T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的條件下 Tn+3 = Tn + Tn+1 + Tn+2
給你整數(shù) n,請(qǐng)返回第 n 個(gè)泰波那契數(shù) Tn 的值。
來(lái)源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/n-th-tribonacci-number
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
示例 1:
輸入:n = 4
輸出:4
解釋:
T_3 = 0 + 1 + 1 = 2
T_4 = 1 + 1 + 2 = 4
示例 2:
輸入:n = 25
輸出:1389537
一般思路很簡(jiǎn)單
class Solution { public:int tribonacci(int n) {if(n == 0){return 0;}if(n == 1){return 1;}if(n == 2){return 1;}return tribonacci(n-3) +tribonacci(n-2) +tribonacci(n-1);} };然而提示超時(shí)。
換種寫(xiě)法:
然而沒(méi)有直觀上的遞歸形式
class Solution {int[] dp = new int[38];public int tribonacci(int n) {// 先判斷數(shù)組中是否有結(jié)果,有直接取if (dp[n] != 0) {return dp[n];}if (n == 0) {return 0;} else if (n == 1 || n == 2) {return 1;} else {// 遞歸獲取結(jié)果int res = tribonacci(n - 3) + tribonacci(n - 2) + tribonacci(n - 1);// 將結(jié)果保存到數(shù)組中dp[n] = res;return res;}} }總結(jié)
以上是生活随笔為你收集整理的递归2:第 N 个泰波那契数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 结构数组_Python-“
- 下一篇: 增量式pid_PID 基础知识汇总