【C++】动态规划算法

目录

  • 还会持续更新
  • 动态规划
    • 斐波那契模型
      • 三步问题
      • 最小花费爬楼梯
    • 路径问题
      • 不同路径
      • 路径问题Ⅱ
    • 简单多状态
      • 按摩师

还会持续更新

动态规划

什么是动态规划?
请添加图片描述

斐波那契模型

三步问题

请添加图片描述

请添加图片描述

class Solution {
public: const int N = 1000009;int waysToStep(int n) {if(n==1) return 1;if(n==2) return 2;if(n==3) return 4;int dp[N];dp[1] = 1;dp[2] = 2; dp[3] = 4;for(int i =4;i<=n;i++){dp[i]=((dp[i-1] + dp[i-2])%1000000007 + dp[i-3])%1000000007;//结果太大,遇到相加相乘都要取模}        return dp[n];}
};

最小花费爬楼梯

在这里插入图片描述

请添加图片描述

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {//创建dp表vector<int> dp(cost.size()+1);//边界情况讨论//初始化dp[0] = dp[1] = 0;for(int i =2;i<=cost.size();i++){dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);}return dp[cost.size()];}
};

路径问题

不同路径

请添加图片描述

请添加图片描述

class Solution {
public:int uniquePaths(int m, int n) {//创建dp表vector<vector<int>> dp(m+1,vector<int>(n+1));//边界和初始化for(int i = 0;i<=m;i++){dp[i][0] = 0;}for(int j =0;j<=n;j++){dp[0][j] = 0;}dp[0][1] = 1;//填表for(int i =1;i<=m;i++){for(int j =1;j<=n;j++){dp[i][j] = dp[i-1][j]+dp[i][j-1];}}//使用表return dp[m][n];}
};

路径问题Ⅱ

在这里插入图片描述

请添加图片描述

class Solution {
public:int uniquePathsWithObstacles(vector<vector<int>>& arr) {//创建dp表int n = arr.size();int m = arr[0].size();vector<vector<int>> dp(n+1,vector<int>(m+1));//初始化dp[0][1] = 1;//填表for(int i = 1;i<=n;i++){for(int j = 1;j<=m;j++){if(arr[i-1][j-1] == 0)dp[i][j] = dp[i-1][j]+dp[i][j-1];}}return dp[n][m];}
};

简单多状态

按摩师

请添加图片描述
请添加图片描述

class Solution {
public:int massage(vector<int>& nums) {//创建dp表int n = nums.size();if(n==0) return 0;vector<int> f(n+1);vector<int> g(n+1);//初始化//边界问题f[1] = nums[0];g[1] = 0;//填表for(int i =2; i<=n;i++){f[i] = g[i-1] + nums[i-1];g[i] = max(f[i-1],g[i-1]);}//用表return max(f[n],g[n]);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/803344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务器远程桌面连接不上怎么办?

随着互联网的发展和远程办公的兴起&#xff0c;服务器远程桌面连接成为了许多企业和个人不可或缺的工具。偶尔我们可能会碰到服务器远程桌面连接不上的情况&#xff0c;这时候我们需要找到解决办法&#xff0c;确保高效地远程访问服务器。 天联组网——突破远程连接障碍 在我们…

前端二维码工具小程序使用说明书

一、产品概述 前端二维码工具小程序是一款便捷、高效、易用的二维码生成与识别工具。本产品支持根据用户输入的文本或链接生成二维码&#xff0c;同时提供扫一扫功能以识别二维码内容&#xff0c;并支持将识别到的内容复制到剪贴板。此外&#xff0c;产品还提供了美化功能&…

Armadillo库:用于线性代数和科学计算的快速C/C++库下载及vs环境下的使用方法

armadillo库的下载及使用 一. armadillo库的下载二. vs2022环境下armadillo库的基本使用方法 一. armadillo库的下载 armadillo库的官方下载连接: https://arma.sourceforge.net/download.html 选择网页中最新版本的armadillo库压缩包文件进行下载。 解压armadillo-12.8.2.ta…

无重复的最长字串

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 问题 给定一个字符串&#xff0c;我们需要找到该字符串中的最长无重复子串的长度。 示例 让我们以一个具体的示例来说明这个问题&#…

场景文本检测识别学习 day02(AlexNet论文阅读、ResNet论文精读)

怎么读论文 在第一遍阅读的时候&#xff0c;只需要看题目&#xff0c;摘要和结论&#xff0c;先看题目是不是跟我的方向有关&#xff0c;看摘要是不是用到了我感兴趣的方法&#xff0c;看结论他是怎么解决摘要中提出的问题&#xff0c;或者怎么实现摘要中的方法&#xff0c;然…

Elementplus 2.6.1表单校验模块开发体验改进

需求 之前的表单代码看了下&#xff0c;写的比较冗长&#xff0c;于是去万能的Github找点轮子&#xff0c;发现了这个&#xff1a; GitHub - aweiu/element-ui-verify: 如果你受够了饿了么ElementUI原生的校验方式&#xff0c;那就来试试它吧&#xff01;一款更懂你的校验插件…

Taro框架中的H5 模板基本搭建

1.H5 模板框架的搭建 一个h5 的基本框架的搭建 基础template 阿乐/H5 Taro 的基础模板

Java多线程实战-从零手搓一个简易线程池(四)线程池生命周期状态流转实现

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;Java全栈-专栏 &#x1f3f7;️本系列源码仓库&#xff1a;多线程并发编程学习的多个代码片段(github) &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正…

nexus设置s3存储

问题 因为我的nexus是安装在EC2上面&#xff0c;需要利用s3的存储能力&#xff0c;为nexus提供存储服务。 步骤 准备s3桶 输入桶名&#xff0c;创建s3桶&#xff0c;如下图&#xff1a; 创建桶读写策略 具体内容如下&#xff1a; {"Version": "2012-10-1…

c++之代码编译问题

为什么头文件不是编译的对象 1、头文件与包含指令(#include) 那些没有被项目中任何源文件包含的头文件&#xff0c;编译器是不去理会它的&#xff0c;不管它有没有语法错误&#xff0c;也不管它是否已添加到项目中。 2、包含指令的执行 包含指令是一种预编译指令&#xff0c;它…

如何区别进化和演化

在生物学中&#xff0c;"进化"和"演化"这两个词通常可以互换使用&#xff0c;它们都指的是生物种群随时间推移而发生的遗传变化。然而&#xff0c;在某些语境中&#xff0c;这两个词可能会有细微的差别&#xff1a; 进化&#xff08;Evolution&#xff09;…

[翻译] 在 CI 或测试环境中使用 Docker-in-Docker,三思而后行

发布日期&#xff1a;2024-04-08 18:01:01 原文地址&#xff1a;Using Docker-in-Docker for your CI or testing environment? Think twice. Docker-in-Docker 的主要目的是帮助 Docker 本身的开发。许多人使用它来运行 CI&#xff08;例如使用 Jenkins&#xff09;&#xf…

[NKCTF2024]-PWN:leak解析(中国剩余定理泄露libc地址,汇编覆盖返回地址)

查看保护 查看ida 先放exp 完整exp&#xff1a; from pwn import* from sympy.ntheory.modular import crt context(log_leveldebug,archamd64)while True:pprocess(./leak)ps[101,103,107,109,113,127]p.sendafter(bsecret\n,bytes(ps))cs[0]*6for i in range(6):cs[i]u32(p…

Java 基于微信小程序的校园请教小程序的研究与实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、10年大厂程序员经历。全网粉丝12W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447…

SpringBoot整合Spring Data JPA

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉🍎个人主页:Leo的博客💞当前专栏: 循序渐进学SpringBoot ✨特色专栏: MySQL学习 🥭本文内容: SpringBoot整合Spring Data JPA 📚个人知识库: Leo知识库,欢迎大家访问 1.…

淘宝销量API商品详情页原数据APP接口测试㊣

淘宝/天猫获得淘宝app商品详情原数据 API 返回值说明 item_get_app-获得淘宝app商品详情原数据 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地…

Java-StringBuilder容器

一、基础用法 1.创建对象 StringBuilder sbnew StringBuilder(); 2.添加元素 可以添加整型、浮点型、字符串等。 sb.append(1); sb.append(2.3); sb.append(true); 3.反转 sb.reverse(); 4.获取长度 int len sb.length(); 5.转变成字符串 tring strsb.toString(); …

Python学习笔记11 - 列表

1. 列表的创建与删除 2. 列表的查询操作 3. 列表的增、删、改操作 4. 列表元素的排序 5. 列表生成式

利用IP地址判断羊毛用户:IP数据云提供IP风险画像

在当今数字化社会&#xff0c;互联网已经成为人们日常生活和商业活动中不可或缺的一部分。然而&#xff0c;随着网络的普及&#xff0c;网络欺诈行为也日益猖獗&#xff0c;其中包括了羊毛党这一群体。羊毛党指的是利用各种手段获取利益、奖励或者优惠而频繁刷取优惠券、注册账…

png转换成jpg格式?这几种方法很简单

在发送电子邮件时&#xff0c;附件的大小是一个重要的考虑因素。将PNG图像转换为jpg格式可以减小文件大小&#xff0c;减少附件的传输时间和存储空间占用。这对于商务邮件、个人邮件或邮件营销活动中的图片附件都非常有用&#xff0c;下面就介绍几个可以快速完成图片转格式的方…