【动态规划】三步问题

题目链接: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];
    }
};
相关推荐
xy20266 小时前
多轮 Tool Agent 训不动?先把环境 token 从 loss 里拿掉
算法
wzdark6 小时前
多核架构下算法并行化的瓶颈与突破点4
算法·架构
阿明66 小时前
Leetcode: 283. 移动零
算法·leetcode·职场和发展
葫三生6 小时前
三生原理与《涌现:从简单规则到复杂世界》在“简单规则生成复杂系统”核心思路上存在理论呼应?
人工智能·科技·算法·机器学习·开源
6Hzlia6 小时前
【Classic 150 刷题计划】 LeetCode 274. H 指数 | C++ 二分答案法 (单调性降维打击)
c++·算法·leetcode
行者全栈架构师7 小时前
WorkBuddy 实战:50 份简历 30 分钟筛完,还能自动出评估报告
人工智能·算法·微信
ysu_03147 小时前
19-插入排序与希尔排序
数据结构·算法·排序算法
qq_508576097 小时前
人性机器人部分 算法
算法·机器人
Polevne7 小时前
C# GRPC 一元与双向流
linux·算法·c#
huang5791477 小时前
复杂网络中的最短路径搜索算法性能分析3
算法