【动态规划】三步问题

题目链接: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];
    }
};
相关推荐
白露与泡影1 小时前
解密 Pi 的 Harness 工程:Agent 会话如何实现持久化与恢复
java·人工智能·算法
happyprince3 小时前
01-整体观-Codex全貌解读(源码)
算法·ai编程
俊基科技3 小时前
别自己写算法了,让这颗37.5毫米的模组替你“闭嘴干活”
神经网络·算法·硬件开发·ai降噪·语音模块·回音消除
_Narcissus_4 小时前
动态规划初探(含完整代码实现)
c语言·数据结构·c++·算法·动态规划·背包问题·最短路径
世人万千丶4 小时前
鸿蒙项目实战 - 社区活动编排板:标签云布局算法与自动换行
学习·算法·华为·harmonyos·鸿蒙
zander2584 小时前
LeetCode 279. 完全平方数
算法·深度优先
典典分享指南5 小时前
VS Code Git 工作树:解锁多分支并行开发新体验
算法·决策树·逻辑回归·启发式算法
_Narcissus_6 小时前
枚举和模拟算法笔记
c语言·数据结构·c++·笔记·算法·模拟·枚举
天疆说6 小时前
策略的进化:从随心所欲到稳健前行
算法