day 38,509. 斐波那契数70. 爬楼梯;# 746. 使用最小花费爬楼梯

news2024/12/23 13:17:31

动态规划

  • 五步分析
  • 509. 斐波那契数
    • 1. dp数组以及下标名义
    • 2. 递归公式
    • 3. dp数组如何初始化
    • 4. 遍历顺序(背包问题先遍历背包还是物品)
    • 5. 打印dp数组:debug
    • 6.代码
  • 70. 爬楼梯
    • 1. dp数组以及下标名义
    • 2. 递归公式
    • 3. dp数组如何初始化
    • 4. 遍历顺序
    • 5. 代码:与斐波那契数列一样
  • [746. 使用最小花费爬楼梯](https://leetcode.cn/problems/min-cost-climbing-stairs/submissions/436041869/)
    • 1. dp数组以及下标名义
    • 2. 递归公式
    • 3. dp数组如何初始化
    • 4. 遍历顺序(背包问题先遍历背包还是物品)
    • 5. 打印dp数组:debug
    • 6.代码

五步分析

  1. dp数组以及下标名义
  2. 递归公式
  3. dp数组如何初始化
  4. 遍历顺序(背包问题先遍历背包还是物品)
  5. 打印dp数组

509. 斐波那契数

1. dp数组以及下标名义

dp[i]的定义为:第i个数的斐波那契数值是dp[i]

2. 递归公式

dp[i] =dp[i-1]+dp[i-2]

3. dp数组如何初始化

dp[0]=1;dp[1]=1

4. 遍历顺序(背包问题先遍历背包还是物品)

从前向后遍历

5. 打印dp数组:debug

6.代码

class Solution {
public:
    int fib(int n) {
        if( n == 0 )return 0;
        if( n == 1 )return 1;
        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];
    }
};

70. 爬楼梯

在这里插入图片描述

1. dp数组以及下标名义

爬到第i层楼梯,有dp[i]种方法
1楼:1种方法
2楼:两种方法
3楼:1+2种,三楼可以从二楼爬一层到达,也可以从一楼爬两层到达,只于前两层楼梯有关

2. 递归公式

dp[i] =dp[i-1]+dp[i-2]

3. dp数组如何初始化

dp[1]=1;dp[2]=2

4. 遍历顺序

从前到后

5. 代码:与斐波那契数列一样

class Solution {
public:
    int climbStairs(int n) {
        if(n == 0)return 0;
        if(n == 1)return 1;
        if(n == 2)return 2;
        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];
    }
};

746. 使用最小花费爬楼梯

在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯
在这里插入图片描述

1. dp数组以及下标名义

dp[i]的定义为:到达第i层花费的最小值是dp[i]

2. 递归公式

dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1]
dp[i - 2] 跳到 dp[i] 需要花费 dp[i - 2] + cost[i - 2]
所以dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);

3. dp数组如何初始化

dp[1]=cost[0];dp[0]=0;

4. 遍历顺序(背包问题先遍历背包还是物品)

从前向后遍历

5. 打印dp数组:debug

6.代码

class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        if(cost.size() <= 1)return 0;
        vector<int>dp(cost.size() + 1);
        dp[1] = 0; dp[0] = 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.coloradmin.cn/o/606639.html

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

相关文章

idea部署Tomcat

创建Web项目 我们首先使用IDEA创建一个普通的java项目 创建好后的项目结构如上图&#xff0c;我创建的项目名称为tomcat&#xff0c;这个项目现在还是一个普通的java项目&#xff0c;想要开发web程序&#xff0c;我们还要做一下操作&#xff0c;首先我们先给项目添加依赖 首先…

皮卡丘Unsafe Fileupload

1.不安全的文件上传漏洞概述 文件上传功能在web应用系统很常见&#xff0c;比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后&#xff0c;后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等&#xff0c;然后将其按照设计的格式进行…

chatgpt赋能python:Python升序数函数:从入门到实战

Python升序数函数&#xff1a;从入门到实战 Python是一门广泛应用于软件开发、数据分析、人工智能等领域的高级编程语言。其中&#xff0c;对数值类型的处理尤为突出&#xff0c;而Python中提供了许多方便实用的数学函数来支持数值类型的计算。本篇文章将主要介绍Python中如何…

皮卡丘存储型xss、DOM型xss、DOM型xss-x

1.存储型xss 看题目&#xff0c;我们先留言&#xff0c;看它的过滤机制 发现可以永久存储并输出我们的留言 之后插入payload: <script>alert(xss)</script> 成功弹窗&#xff01; 2.DOM型xss Dom型xss&#xff0c;简单的说&#xff0c;就是向文档对象传入xss参…

ODOO随笔(一)—— Odoo 16的docker部署以及vscode环境配置

之前一直使用Odoo源码配置开发环境&#xff0c;安装的步骤比较多&#xff0c;费时。趁着升级到16版本的机会&#xff0c;尝试使用docker快速配置Odoo的VSCode开发环境。 1 系统环境 &#xff08;1&#xff09;操作系统&#xff1a;ubuntu 20.04 Alternative downloads | Ubu…

高完整性系统(1)Introduction

文章目录 什么是 formal methods案例1&#xff1a;造影机器案例2&#xff1a; 特斯拉汽车的自动驾驶功能案例3&#xff1a;空客 320案例4&#xff1a;波音737 什么是 formal methods “Formal methods” 是计算机科学中的一个术语&#xff0c;它指的是一种使用数学模型和技术来…

chatgpt赋能python:Python匹配空格

Python匹配空格 在Python中&#xff0c;空格是一个常见的字符&#xff0c;在字符串和文本处理中非常常见。但是&#xff0c;在某些情况下&#xff0c;我们需要匹配字符串中的空格&#xff0c;这个时候就需要使用Python匹配空格。 什么是Python匹配空格&#xff1f; Python匹…

皮卡丘反射型XSS

1.反射型xss(get) 进入反射型xss(get)的关卡&#xff0c;我们可以看到如下页面 先输入合法数据查看情况&#xff0c;例如输入“kobe” 再随便输入一个&#xff0c;比如我舍友的外号“xunlei”&#xff0c;“666”&#xff0c;嘿嘿嘿 F12查看源代码&#xff0c;发现你输入的数…

【5.29 代随_41day】 整数拆分、不同的二叉搜索树

整数拆分、不同的二叉搜索树 整数拆分1.动态规划的方法图解步骤代码 不同的二叉搜索树图解步骤代码 整数拆分 力扣连接&#xff1a;343. 整数拆分&#xff08;中等&#xff09; 1.动态规划的方法 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i]&#xff1a…

redis第四章-redis下redisson分布式锁原理和源码分析

如上图&#xff0c;在最简单使用分布式锁的时候&#xff0c;我们一般获取一个锁对象&#xff0c;对这个对象进行加锁&#xff0c;当执行完业务流程代码后&#xff0c;对分布式锁进行解锁&#xff0c;这样就保证了高并发下程序的锁安全&#xff0c;以及原子性。 如图&#xff0c…

Linux 实验三 Linux C开发工具的使用

做实验之前必须会vim的简单使用 会使用vi 进入文件 i 插入 esc进入底行模式 :wq退出 1、vi编辑器和gcc编译器的简单使用 &#xff08;1&#xff09;在用户主目录下新建一个目必须掌握录&#xff0c;命名为vifile &#xff08;2&#xff09;进入目录vifile &#xff08;3&…

LearnOpenGL-高级OpenGL-10.实例化

本人初学者&#xff0c;文中定有代码、术语等错误&#xff0c;欢迎指正 文章目录 实例化例子1.1&#xff1a;100个2D四边形使用Uniform 实例化数组例子1.2&#xff1a;100个2D四边形使用实例化数组例子2.1&#xff1a;行星带不使用实例化数组例子2.2&#xff1a;行星带使用实例…

【转码】nohup后台执行ffmpeg转码后推流srs

【ffmpeg】flv1转码h264且降低分辨率 【ffmpeg】filter_complex 转码视频保留音频推直播flv流 拉流播放剪辑到2M mp4 转flv 同时转码,拉流地址:http://1.1.1.5:8078/live/streamLow.flv 过了三个月,忘了。通过查询后台程序,判断当时自己是用的哪个脚本:看下上次操作的时间…

MySQL简单教程

MySQL的数据类型 类型用途int整型&#xff0c;相当于java的intbigint整型&#xff0c;相当于java的longfloat浮点型double浮点型datetime日期类型timestamp日期类型(可存储时间戳)char定长字符varchar不定长字符text大文本&#xff0c;用于存储很长的…

皮卡丘xss之盲打、xss之过滤

1.xss之盲打 我们先按照题目输入 提交后&#xff0c;很平常 再试试插入payload&#xff1a;<script>alert(1)</script>和<script>alert(2)</script> 提交后还是不变 此时我们看提示 我们尝试访问该地址&#xff1a;127.0.0.1/pk/vul/xss/xssblind/ad…

聊聊Scrum价值观与测试启发

这是鼎叔的第六十二篇原创文章。行业大牛和刚毕业的小白&#xff0c;都可以进来聊聊。 欢迎关注本公众号《敏捷测试转型》&#xff0c;星标收藏&#xff0c;大量原创思考文章陆续推出。 敏捷理论博大精深&#xff0c;相关实践方法论和工具层出不穷&#xff0c;各大公司都有特…

从零开始学习JVM(六)-直接内存和执行引擎

1 直接内存介绍 直接内存不是虚拟机运行时数据区的一部分&#xff0c;也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存空间。直接内存来源于NIO&#xff0c;通过存在堆中的DirectByteBuffer操作Native内存。通常访问直接内存的速度会…

Stable Diffusion教程

什么是Stable Diffusion Stable Diffusion是一种潜在扩散模型&#xff08;Latent Diffusion Model&#xff09;&#xff0c;能够从文本描述中生成详细的图像。它还可以用于图像修复、图像绘制、文本到图像和图像到图像等任务。简单地说&#xff0c;我们只要给出想要的图片的文…

RK3588平台开发系列讲解(网络篇)本地套接字

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、本地套接字是什么二、本地字节流套接字 服务器三、本地字节流套接字 客户端沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本地套接字是 IPC,也就是本地进程间通信的一种实现方式。除了本地套接字以外,…

皮卡丘Unsafe Filedownload

1.不安全的文件下载概述 文件下载功能在很多web系统上都会出现&#xff0c;一般我们当点击下载链接&#xff0c;便会向后台发送一个下载请求&#xff0c;一般这个请求会包含一个需要下载的文件名称&#xff0c;后台在收到请求后 会开始执行下载代码&#xff0c;将该文件名对应…