day 38 动态规划(1)

day38
代码随想录
2024.1.6
开始动态规划!
递归五部曲:

  1. 确定dp数组含义
  2. 确定递推公式
  3. dp数组初始化
  4. 遍历顺序
  5. 举例推导dp数组

1. 50斐波那契数列
经典的动态规划入门第一题,直接递归五部曲,

  1. 本题递归数组是具体要求的值,而dp数组下标则是所给参数n
  2. 根据题目要求,递推公式应该为,从第三个数开始,每个数等于前两个数之和
  3. dp初始化本题题目已给
  4. 根据递归公式,遍历顺序为从左往右
  5. n=0,n=1,然后n=2值为前两个之和为1,以此类推。
class Solution {
public:int fib(int n) {if(n<=1)return n;vector<int> DP(n+1);DP[0] = 0;DP[1] = 1;for(int i=2;i<=n;i++){DP[i] = DP[i-1] + DP[i-2];}return DP[n];}
};

2. 70爬楼梯

  1. 首先,本题dp数组含义是有多少种爬楼梯的方法,而下标n表示楼梯阶数
  2. 这道题递推公式得稍微思考一下,首先针对一个阶梯为n得,最后一步是能走一步或两步,走一步时前一步就是n-1层,走两步前一层就是n-2层,因为,阶梯为n的无非就两种情况,加起来就好,会发现,跟斐波那契数列递推公式相同
  3. 本题不存在n=0,n=1和n=2就是初始化值
  4. 同理,从左往右
  5. 类比斐波那契数
class Solution {
public:int climbStairs(int n) {if(n<=2) return n;vector<int> dp(n+1);dp[1] = 1;dp[2] = 2;for(int i=3;i<=n;i++)dp[i] = dp[i-1] + dp[i-2];return dp[n];}
};

3. 746使用最小代价爬楼梯
这道题初始化开始没有弄清楚

  1. dp数组为最小花费,i是楼梯数
  2. 与爬楼梯类似,i楼梯是i-1和i-2楼梯而来,不过,此时不是相加,因为要求最小花费,而dp[i-1]是到达该层的花销,要加上之后的开销cost[i-1],i-2也是一样,然后在这两种情况中找最小值
  3. 这是开始没弄清的情况,0和1开始的不用花费因此都是0
  4. 当然还是从左往右
  5. 略!
class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {vector<int> dp(cost.size() + 1);dp[0] = 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()];}
};

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

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

相关文章

每日一题 - 240106 - D - Loong and Takahashi

D - Loong and Takahashi TAG - 回形矩阵 回形矩阵 回形矩阵时间复杂度 - O ( N N ) O(N \times N) O(NN) // #include<bits/stdc.h> using namespace std; // #define int long long const int N50; int g[N][N];void solve() {int n;scanf("%d",&n )…

私有云平台搭建openstack和ceph结合搭建手册

OpenStack与云计算 什么是云&#xff1f; 如何正确理解云&#xff0c;可以从以下几个方面。 云的构成。 用户&#xff1a;对用户而言是透明无感知的&#xff0c;不用关心底层构成&#xff0c;只需要知道利用云完成自己任务即可。 云提供商&#xff1a;对云资产管理和运维。 云…

CentOS安装JDK

目录 一、文件准备 1、目录创建 2、导入jdk压缩文件 3、解压压缩包 二、配置 1.配置环境变量 2.使用source命令生效环境变量 3、测试 总结 一、文件准备 1、目录创建 在/usr/local下创建java 目录 2、导入jdk压缩文件 3、解压压缩包 tar -zxf jdk-8u201-linux-x64.t…

[C#]使用onnxruntime部署yolov8-onnx印章检测

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8是目标检测领域中的一种先进算法&#xff0c;它是YOLO&#xff08;You Only Look Once&#xff09;系列算法的最新发展。YOLO算法以其高效和实时的性能而著名&#xff0c;而YOLOv8则进一…

计算机毕业设计----ssm大学生兼职论坛

项目介绍 该项目是一个大学生校园兼职平台&#xff0c;分为前台和后台功能&#xff0c;主要用户有三种角色&#xff1a;分别是商家、学生、管理员。商家可以发布兼职信息&#xff0c;发布后&#xff0c;管理员进入后台确认信息是否有效&#xff0c;并且审核该兼职信息。学生登…

vue接入高德地图

使用 JSAPI 安全模式,代理服务请以_AMapService 作为一级路由 index.html <script type"text/javascript">window._AMapSecurityConfig {serviceHost: "http://xx.xx.xx.xx:8223/_AMapService"};</script><script type"text/javascr…

gRPC - gRPC 整合 SpringBoot(全代码 + 避坑!)

目录 一、gRPC 整合 SpringBoot 1.1、创建项目 1.2、天坑&#xff08;看前须知&#xff09;&#xff01; 1.2.1、天坑背景 1.2.2、解决天坑 1.3、api 开发 1.4、server 开发 1.5、client 开发 1.6、演示效果 一、gRPC 整合 SpringBoot 1.1、创建项目 api&#xff1a;编…

关于图像分类任务中划分数据集,并且生成分类类别的josn字典文件

1. 前言 在做图像分类任务的时候&#xff0c;数据格式是文件夹格式&#xff0c;相同文件夹下存放同一类型的类别 不少网上的数据&#xff0c;没有划分数据集&#xff0c;虽然代码简单&#xff0c;每次重新编写还是颇为麻烦&#xff0c;这里记录一下 如下&#xff0c;有的数据…

大语言模型的幻觉:解析、成因及解决方法

目录 前言1 大语言模型的幻觉现象解析1.1 输入冲突幻觉&#xff08;Input-conflicting&#xff09;1.2 上下文冲突幻觉&#xff08;Context-conflicting&#xff09;1.3 事实冲突幻觉&#xff08;Fact-conflicting&#xff09; 2 幻觉产生的原因2.1 数据偏差和模型缺陷2.2 知识…

“人家赚那么多”系列03:如何慢速练习?

01 慢速练习 慢速练习是学习和发展中常用的基本技巧。 比如说&#xff0c;当你初学吉他时&#xff0c;开始时肯定是以比预期速度慢得多的节奏&#xff0c;逐段逐段地演奏&#xff0c;随着每次的重复&#xff0c;逐渐增加速度&#xff0c;直到完全达到正确的速度。 回想学习英语…

基于SpringBoot的在线考试系统绿色

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的在线考试系统绿色,java…

如何发布自己的golang库

如何发布自己的golang库 1、在 github/gitee 上创建一个 public 仓库&#xff0c;仓库名与 go 库名一致&#xff0c;然后将该仓库 clone 到本地。 本文这里使用 gitee。 $ git clone https://gitee.com/zsx242030/goutil.git2、进入项目文件夹&#xff0c;进行初始化。 $ go…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端鉴权拦截器实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

不给病毒留空子:保护您的数据免受.mallox勒索病毒威胁

尊敬的读者&#xff1a; 在数字时代&#xff0c;勒索病毒成为网络安全的一大威胁&#xff0c;而.mallox 勒索病毒以其狡猾和高度破坏性而备受关注。本文将深入介绍.mallox 勒索病毒的特征、威胁以及如何恢复被加密的数据&#xff0c;并提供一系列有效的预防措施。 在面对被勒索…

离线部署的MinIO

网络有不同的部分&#xff0c;例如 DMZ、公共、私有、堡垒等。这实际上取决于您的组织和网络要求。在部署应用程序时&#xff0c;任何应用程序&#xff0c;我们都需要考虑类型以及它是否需要位于网络的特定部分。 例如&#xff0c;如果要部署数据库&#xff0c;则不希望它位于…

CSS基础笔记-03选择器

CSS基础笔记系列 《CSS基础笔记-01CSS概述》《CSS基础笔记-02动画》 前言 在前面两篇博客中&#xff0c;我实际上已经使用过了选择器。但到底什么是选择器、有什么作用&#xff0c;我反而不能表达出来。因此&#xff0c;决定记录了我的学习和思考。 什么是选择器 selector…

计算机毕业设计 SpringBoot的一站式家装服务管理系统 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

前端axios封装和跨域问题

项目背景&#xff1a;uniappvue3tsvitepiniavant 1. 安装axios npm i axios2. 封装axios 创建一个名为http.ts的文件 import { ref } from "vue"; import axios from "axios";// 创建一个可以同步访问的 token 变量 export const token ref(null);// …

blender Principled BSDF

Principled BSDF是一种基于物理的着色器&#xff0c;它使用金属工作流&#xff0c;而不是镜面工作流。金属工作流假设金属材质没有漫反射分量&#xff0c;只有镜面反射分量&#xff0c;而非金属材质有漫反射和镜面反射分量。Metallic属性用于控制材质是金属还是非金属&#xff…

深入浅出 Zookeeper 中的 ZAB 协议

本文主要内容如下&#xff1a; ZAB 协议的全称是 Zookeeper Atomic Broadcase&#xff0c;原子广播协议。 作用&#xff1a;通过这个 ZAB 协议可以进行集群间主备节点的数据同步&#xff0c;保证数据的一致性。 在讲解 ZAB 协议之前&#xff0c;我们必须要了解 Zookeeper 的各…