【动态规划】第N个泰波那契数

题目链接:https://leetcode.cn/problems/n-th-tribonacci-number/description/

cpp 复制代码
class Solution {
public:
    int tribonacci(int n) 
    {
        /*时空复杂度都是O(n)*/
        // 处理边界情况
        if (n == 0) return 0;
        if (n == 1 || n == 2) return 1;
        // 1.创建 dp 表
        vector<int> dp(n + 1);
        // 2.初始化
        dp[0] = 0, dp[1] = dp[2] = 1;
        // 3.填表
        for (int i = 3; i < n + 1; ++i)
            dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
        // 4.返回值
        return dp[n];
    }
};
cpp 复制代码
class Solution {
public:
    int tribonacci(int n) {
        // 处理边界情况
        if (n == 0) return 0;
        if (n == 1 || n == 2) return 1;
        
        int a = 0, b = 1, c = 1, d = 0;
        for (int i = 3; i <= n; ++i)
        {
            d = a + b + c;
            // 滚动操作
            a = b; b = c; c = d;
        }
        return d;
    }
};
相关推荐
旖-旎6 小时前
《LeetCode 130 被围绕的区域 FloodFill DFS 解法》
c++·算法·深度优先·力扣·floodfill
林森lsjs6 小时前
斐波那契数列的 N 种解法:从递归到动态规划的优化之路【算法思考】
算法·动态规划
apcipot_rain7 小时前
计科八股20260616(1)——堆存中位数、链表判环、黑白测试、敏捷开发与瀑布模型、配置管理、持续集成、池化
数据结构·算法·软件工程
JAVA面经实录91713 小时前
Java 数据结构与算法 (终极完整学习文档)
java·数据结构·算法
开源Z15 小时前
LeetCode 42 · 接雨水:从暴力到双指针的三步优化
算法·leetcode
旖-旎15 小时前
《LeetCode 695 岛屿的最大面积 FloodFill DFS 解法》
c++·算法·力扣·深度优先遍历·floodfill
syagain_zsx16 小时前
STL 之 vector 讲练结合
c++·算法
MartinYeung517 小时前
[论文学习]DP2Unlearning:高效且具保证的大型语言模型遗忘框架(基于差分隐私的 LLM Unlearning 方法)
学习·算法·语言模型
Tian_Hang17 小时前
C++原型模式(Protype)
开发语言·c++·算法