LeetCode三步问题(动态规划)

LeetCode三步问题(动态规划)

链接: 三步问题


编写代码

clike 复制代码
class Solution {
public:
    int waysToStep(int n) {
        if(n == 1 || n == 2) return n;
        vector<int> dp(n+1);
        const int MOD = 1e9 + 7;
        dp[0] = dp[1] = 1;
        dp[2] = 2;
        for(int i = 3;i<=n;++i)
        {
            dp[i] = ((dp[i - 1] + dp[i - 2]) % MOD + dp[i - 3]) % MOD;
        }
        return dp[n];
    }
};

代码优化

clike 复制代码
class Solution {
public:
    int waysToStep(int n) {
        if(n == 1 || n == 2) return n;
        int a = 1,b = 2,c = 4,d = 0;
        const int MOD = 1e9 + 7;
        for(int i = 4;i<=n;++i)
        {
            d = ((b + c) % MOD + a) % MOD;
            a = b;
            b = c;
            c = d;
        }
        return c;
    }
};
相关推荐
闲人编程36 分钟前
图像去雾算法:从物理模型到深度学习实现
图像处理·人工智能·python·深度学习·算法·计算机视觉·去雾
咔咔学姐kk41 分钟前
大模型微调技术宝典:Transformer架构,从小白到专家
人工智能·深度学习·学习·算法·transformer
haogexiaole2 小时前
Dijkstra 算法
算法
papership3 小时前
【入门级-算法-6、排序算法: 插入排序】
数据结构·算法·排序算法
HAH-HAH3 小时前
【蓝桥杯 2024 国 Java A】粉刷匠小蓝
c++·学习·数学·算法·职场和发展·蓝桥杯·组合数学
hweiyu005 小时前
C++设计模式,高级开发,算法原理实战,系统设计与实战(视频教程)
c++·算法·设计模式
大千AI助手5 小时前
粒子群优化(PSO)算法详解:从鸟群行为到强大优化工具
人工智能·算法·优化算法·pso·粒子群优化
我叫汪枫5 小时前
C语言深度入门系列:第十一篇 - 动态内存管理与数据结构:程序世界的高效算法大师
c语言·数据结构·算法
Li_7695325 小时前
优选算法100 题 ——1 双指针
算法
77qqqiqi5 小时前
算法——数学基础
算法