当前位置: 首页 > 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];}
};
http://www.lryc.cn/news/545539.html

相关文章:

  • stm32week5
  • fastapi中的patch请求
  • 系统架构设计师—计算机基础篇—计算机网络
  • MATLAB中asManyOfPattern函数用法
  • Kafka面试题及原理
  • Grok 3 AI 角色扮演提示词 化身顶级设计师
  • 从零开始设计一个完整的网站:HTML、CSS、PHP、MySQL 和 JavaScript 实战教程
  • CSS 对齐:深入理解与技巧实践
  • oracle游标为什么没有共享,统计一下原因
  • IDEA中.gitignore未忽略指定文件的问题排查与解决
  • 通往 AI 之路:Python 机器学习入门-语法基础
  • 形象生动讲解Linux 虚拟化 I/O
  • 6. Nginx 动静分离配置案例(附有详细说明+配图)
  • 数据集笔记:新加坡停车费
  • SQL经典题型
  • 最新Java面试题,常见面试题及答案汇总
  • 学习第九天-栈
  • Java基础关键_016_System 类
  • 计算机毕设JAVA——某高校宿舍管理系统(基于SpringBoot+Vue前后端分离的项目)
  • 【 实战案例篇三】【某金融信息系统项目管理案例分析】
  • vivado 避免本地时钟、创建输出时钟
  • 二十三种设计模式
  • uniapp 中引入使用uView UI
  • 用冒泡排序法模拟qsort函数
  • DCN讲解
  • nginx的作用和应用场景
  • [Lc滑动窗口_1] 长度最小的数组 | 无重复字符的最长子串 | 最大连续1的个数 III | 将 x 减到 0 的最小操作数
  • 基于python的网络爬虫爬取天气数据及可视化分析(Matplotlib、sk-learn等,包括ppt,视频)
  • 【缓存】缓存雪崩与缓存穿透:高并发系统的隐形杀手
  • HTML AI 编程助手