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

动态规划刷题

文章目录

  • 动态规划
    • 三步问题
    • 题目解析
    • 代码

动态规划

1. 状态表示:dp[i],表示dp表中i下标位置的值
2. 状态转移方程:以i位置位置的状态,最近的一步来划分问题,比如可以将状态拆分成前状态来表示现状态,dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
3. 初始化
4. 填表顺序
5. 返回值
线性dp的状态表示dp[i]都是以某个位置为开头或者以某个位置为结尾

三步问题

在这里插入图片描述

题目解析

1. 状态表示:以i为结尾,dp[i]是什么意思,是一共有多少种方法
2. 状态转移方程:以i位置最近的一步来划分问题
3. 初始化:dp[1] = 1,dp[2] = 2,dp[3] = 4
4. 填表顺序:从左向右填表
5. 返回值:返回dp[n]的状态

在这里插入图片描述

代码

class Solution 
{
public:
    int waysToStep(int n) 
    {
        if(n == 1 || n == 2) return n;
        else if(n == 3) return 4;
        
        long long k = 1e9 + 7;

        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]) % k) + dp[i-3]) % k;
        } 

        return dp[n];
    }
};

相关文章:

  • 人工智能AI在汽车设计领域的应用探索
  • springboot417-基于Spring Boot的酒店后台管理系统(源码+数据库+纯前后端分离+部署讲解等)
  • DeepSeek R1体验地址
  • 课程《MIT Introduction to Deep Learning》
  • 24、Java 集合
  • Java 大视界 -- Java 大数据在智慧文旅游客流量预测与景区运营优化中的应用(110)
  • 【愚公系列】《Python网络爬虫从入门到精通》040-Matplotlib 概述
  • C语言--预处理详解
  • Pytorch使用手册-对您的 PyTorch 模块进行性能分析(专题三十七)
  • MoeCTF-2024-wp
  • LeeCode题库第四十题
  • 【数据结构】栈与分治递归||斐波那契问题和归并算法||递归实现||顺序栈和链栈的区分
  • 使用DeepSeek+KIMI生成高质量PPT
  • chroma在langchain中的使用 (Document Question Answering)
  • 蓝桥杯试题:二分查找
  • 两台虚拟机配置本地源以及使用ftp服务进行部署
  • React生态、Vue生态与跨框架前端解决方案
  • 【大模型】Ollama本地部署DeepSeek大模型:打造专属AI助手
  • 2025.3.1面试总结
  • Linux操作系统5- 补充知识(可重入函数,volatile关键字,SIGCHLD信号)
  • 阿里云的网站程序如何做/影视剪辑培训机构排名
  • 企业网站建站 优帮云/网站seo推广营销
  • 网站建设淄博佳铉网络/泰安网络推广培训
  • 网站搭建系统/可以引流推广的app
  • 上海英文网站建设/企业培训方案
  • 南昌网站设计哪家专业好/舆情系统