当前位置:首页 > 力扣 > 力扣1137题:动态规划解泰波那契数 高效求解第N项的秘密

力扣1137题:动态规划解泰波那契数 高效求解第N项的秘密

7个月前 (05-20)

力扣1137题:动态规划解泰波那契数 高效求解第N项的秘密 动态规划 泰波那契数列 递推 数组 算法 C++ 力扣 第1张

一:重新解读题目

泰波那契数列是一个充满数学趣味的递推序列:从第3项开始,每个数均为前三个数的和(即Tₙ₊₃ = Tₙ + Tₙ₊₁ + Tₙ₊₂)。当给定整数n时,需要高效计算出第n项的值。面对此类递推问题,传统的递归方法可能因重复计算导致效率低下,因此动态规划成为破解的关键。

二:解题思路与过程

动态规划的核心在于“以空间换时间”:通过存储已计算出的中间结果,避免重复递归。代码中首先初始化数组dp,前3项分别赋值0、1、1(符合数列定义)。随后从第4项开始循环,每次通过dp[i] = dp[i-1] + dp[i-2] + dp[i-3]更新当前值,直至计算出第n项。此过程严格遵循递推公式,且因数组的有序访问,时间复杂度降至O(n),远优于递归的指数级复杂度。

三:带注释的代码解析

class Solution {  
public:  
    int tribonacci(int n) {  
        // 创建固定长度数组(因题目n≤37,故无需动态分配)  
        int dp[38];  
        // 初始化前3项(边界条件)  
        dp[0] = 0;  
        dp[1] = 1;  
        dp[2] = 1;  
        // 从第3项开始递推计算  
        for (int i = 3; i <= n; i++) {  
            // 利用数组直接访问历史值,完成三步求和  
            dp[i] = dp[i-1] + dp[i-2] + dp[i-3];  
        }  
        // 返回目标项的结果  
        return dp[n];  
    }  
};


原创内容 转载请注明出处

分享给朋友:

相关文章

力扣第1984题精解:如何通过排序将时间复杂度优化到O(n log n)?

力扣第1984题精解:如何通过排序将时间复杂度优化到O(n log n)?

题目解读给定一个整数数组和一个整数 k,需要找到所有大小为 k 的子数组中最大值与最小值的差值的最小值。例如,数组 [9,4,1,7] 中若 ...

力扣第654题:最大二叉树解题教程 用数组构造最大二叉树

力扣第654题:最大二叉树解题教程 用数组构造最大二叉树

题目解读给定一个不含重复元素的整数数组,我们需要构建一棵最大二叉树。构建规则是:数组中的最大值作为根节点,其左侧子数组构建左子树,右侧子数组构建右子树,然后递归地应用这个规则。这种构建方式体现了分治思...

IOI 1994 洛谷1216:如何用O(1)空间解决数字三角形问题?附代码实现

IOI 1994 洛谷1216:如何用O(1)空间解决数字三角形问题?附代码实现

题目重解:数字三角形是一个经典的动态规划问题,给定一个由数字组成的三角形结构,从顶部出发,每次可以移动到下方相邻的数字,最终到达底部。我们需要找到一条路径,使得路径上经过的数字总和最大。这个问题可以很...

LeetCode 120题三角形最小路径和最优解法:动态规划详解与代码实现

LeetCode 120题三角形最小路径和最优解法:动态规划详解与代码实现

一、题目解读LeetCode 120题“三角形最小路径和”要求给定一个由数字组成的三角形,从顶部开始向下移动,每次可向左或向右移动一格,计算从顶至底的最小路径和。三角形以二维向量形式给出,每层元素数量...

力扣931题最小下降路径和解析 动态规划解法 LeetCode解题技巧

力扣931题最小下降路径和解析 动态规划解法 LeetCode解题技巧

一、题目解读力扣931题「Minimum Falling Path Sum」(最小下降路径和)要求在一个n x n的整数矩阵中,计算从顶部到底部的最小路径和。路径只能从每个位置向下或对角线移动(即向下...

牛客网288555题解题指南:动态规划求解小红的暑假(附代码解析)

牛客网288555题解题指南:动态规划求解小红的暑假(附代码解析)

一、题目解读牛客网288555题要求解决一个组合数学问题:有三位朋友,每天需邀请其中一位参加聚会,但不能连续两天邀请同一位朋友。给定天数n,求满足条件的不同邀请方案总数。题目考察动态规划、状态转移及组...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。