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;
    }
};
相关推荐
weixin_4684668518 分钟前
遗传算法求解TSP旅行商问题python代码实战
python·算法·算法优化·遗传算法·旅行商问题·智能优化·np问题
·白小白25 分钟前
力扣(LeetCode) ——43.字符串相乘(C++)
c++·leetcode
FMRbpm1 小时前
链表5--------删除
数据结构·c++·算法·链表·新手入门
程序员buddha1 小时前
C语言操作符详解
java·c语言·算法
John_Rey1 小时前
API 设计哲学:构建健壮、易用且符合惯用语的 Rust 库
网络·算法·rust
愿没error的x1 小时前
动态规划、贪心算法与分治算法:深入解析与比较
算法·贪心算法·动态规划
NONE-C2 小时前
动手学强化学习 第6章 Dyna-Q 算法
算法
惊讶的猫2 小时前
面向无监督行人重识别的摄像头偏差消除学习
人工智能·算法·机器学习
深度学习机器2 小时前
RAG Chunking 2.0:提升文档分块效果的一些经验
人工智能·算法·llm
努力学习的小全全2 小时前
【CCF-CSP】05-01数列分段
数据结构·算法·ccf-csp