【动态规划】三步问题

题目链接:https://leetcode.cn/problems/three-steps-problem-lcci/description/

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