当前位置: 首页 > article >正文

动态规划算法——三步问题

1.题目解析

2.算法原理

本题可以近似看做泰波那契数列,即小孩到第一个台阶需要一步,到第二个台阶则是到第一个台阶的步数加上第一阶到第二阶的步数,同理第三阶就是第二阶的步数加上第二阶到第三阶的步数,由于小孩只能走三步,所以之后的位置就是该位置前三个位置的步数相加

3.实战代码

class Solution {
public:
    int waysToStep(int n) 
    {
        const int MOD = 1e9 + 7;

        //处理边界
        if(n <= 2)
        {
            return n;
        }
        else if(n == 3)
        {
            return 4;
        }

        vector<int> dp(n + 1);
        //初始化
        dp[1] = 1;
        dp[2] = 2;
        dp[3] = 4;

        for(int i = 4;i <= n;i++)
        {
            //状态转移方程
            dp[i] = ((dp[i - 1] + dp[i - 2]) % MOD + dp[i - 3]) % MOD;
        }
        return dp[n];
    }
};

 


http://www.kler.cn/news/343241.html

相关文章:

  • 泊松流公式及相关概念
  • Golang | Leetcode Golang题解之第467题环绕字符串中唯一的子字符串
  • ToSpeak
  • 【Linux】进程间通信——System V消息队列和信号量
  • 智能家居系统及其对现代生活的影响
  • OpenCV高级图形用户界面(1)创建滑动条函数createTrackbar()的使用
  • 【Kubernetes】常见面试题汇总(五十八)
  • 大模型应用探讨,免费AI写作、一键PPT、免费PDF百种应用、与AI对话
  • TypeScript面向对象 02
  • 凡事预则立,不预则废
  • QT中的信号槽
  • 游戏开发指南:使用 UOS C# 云函数快速构建与部署服务端逻辑实战教学
  • 【VUE】Vue2与Vue3中的双向数据绑定
  • 《网络基础之 HTTP 协议:常见 HTTP 方法详解》
  • gb28181对接发现信令包被篡改
  • 【M2TR】M2TR: Multi-modal Multi-scale Transformers for Deepfake Detection
  • Android Automotive(一)
  • SQL第13课挑战题
  • 大数据治理的全面指南
  • 人体工程学视角下的彗星现象