【动态规划】Leetcode 746. 使用最小花费爬楼梯

【动态规划】Leetcode 746. 使用最小花费爬楼梯

    • 解法

---------------🎈🎈题目链接🎈🎈-------------------

解法

😒: 我的代码实现============>

动规五部曲

✒️确定dp数组以及下标的含义

dp[i] 表示跳跃到第 i 层,需要的最少花费总和

✒️确定递推公式

可以有两个途径得到dp[i],一个是dp[i-1] 一个是dp[i-2]。
dp[i-1] :表示跳到 i -1 层需要的花费
dp[i-2] :表示跳到 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 - 1]跳还是从dp[i - 2]跳呢?——选小的
因此: dp[i] = Min( dp[i-1] + cost[i-1] , dp[i-2] + cost[i-2] )

✒️dp数组初始化

在第0层,和第1层的时候不花费。
如果要跳走,那就需要花费
所以初始化dp[0] = 0 , dp[1] = 1

✒️确定遍历顺序

从前到后

✒️举例推导dp数组

时间复杂度O(N)
空间复杂度O(N)

📘代码

class Solution {public int minCostClimbingStairs(int[] cost) {// 动态规划// dp数组:dp[i] 到达第i台阶所花费的最少费用为dp[i]int[] dp = new int[cost.length+1];// 到达第0层和第1层不需要花费,所以初始化为:dp[0] = 0;dp[1] = 0;for(int i = 2; i < cost.length+1; i++){ // 顺序遍历 从2开始到到达楼梯顶部(cost.length+1)dp[i] = Math.min( (dp[i-1] + cost[i-1]), (dp[i-2] + cost[i-2]) );}return dp[cost.length];}   

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

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

相关文章

「Swift」AttributedString常见使用方法

前言&#xff1a;AttributedString是Apple推出的可以实现单个字符或字符范围带相应属性的字符串。属性提供了一些文本特性&#xff0c;可以让文本展示的样式更加丰富。在日常开发过程中&#xff0c;我通常用于同一个Label中包含不同的字体大小或字体颜色的样式编写中。 使用举…

11 Games101 - 笔记 - 几何(曲线与曲面)

11 几何&#xff08;曲线与曲面&#xff09; 贝塞尔曲线 定义 贝塞尔曲线&#xff1a;由控制点和线段组成的曲线&#xff0c;控制点是可拖动的支点。 如图&#xff0c;蓝色为贝塞尔曲线&#xff0c;p1, p2, p3为控制点&#xff0c;曲线和初始与终止端点相切&#xff0c;并且…

Java解决作为子字符串出现在单词中的索引

Java解决作为子字符串出现在单词中的索引 01 题目 给你一个字符串数组 patterns 和一个字符串 word &#xff0c;统计 patterns 中有多少个字符串是 word 的子字符串。返回字符串数目。 子字符串 是字符串中的一个连续字符序列。 示例 1&#xff1a; 输入&#xff1a;patterns…

【原理图PCB专题】Cadence 17.4版本导出excel版本坐标文件

坐标文件记录了板卡上每个元件的坐标是生产的基础资料,在PCBA生产时,需要提坐标文件并且务必保证 准确无误。 Cadence导出坐标文件大部分网上的都是txt文件,其格式如下。导出的文件存在没有对应的Title,格式打开混乱等问题。 那么Cadence 17.4版本如何导出有标题、…

操作系统内功篇:硬件结构之软中断

一 中断是什么&#xff1f; 在计算机中&#xff0c;中断是操作系统用来响应请求硬件设备的一种机制&#xff0c;操作系统收到硬件的中断请求&#xff0c;会打断正在执行的进程&#xff0c;然后调用内核中的中断处理程序来响应请求。 这样的解释可能过于学术了&#xff0c;容易…

分布式系统的基本特性

一般&#xff0c;分布式系统需要支持以下特性&#xff1a; 资源共享 开放性 并发性 可伸缩性 容错性 透明性 下面分别讨论。 容易理解的 资源共享 一旦授权&#xff0c;可以访问环境中的任何资源。 资源&#xff1a;包括硬件(e.g. printer, scanner, camera)、软件&a…

对于组件通信的深刻理解

父组件传递数据给子组件 props传递数据 父组件在子组件的标签上写自定义的属性,属性值是自己的变量,当渲染到子组件时,执行props会找自定义属性,内存了变量的内存,可访问到,写props,会生成vue实例的时候,将props的变量赋给,值找变量内存存入变量.插值语句等可访问.父组件会变…

python综合实战案例-数据分析

Python是进行数据分析的好工具&#xff0c;今天就是借助一个案例给大家进行数据分析讲解。 本例设计一个log.txt⽂件&#xff0c;该文件记录了某个项⽬中某个 api 的调⽤情况&#xff0c;采样时间为每分钟⼀次&#xff0c;包括调⽤次数、响应时间等信息&#xff0c;⼤约18万条数…

如何在 Django 中使用 pyecharts

为项目新建一个目录&#xff0c;将其命名为django_pyecharts_demo, 在终端中切换到这个目录&#xff0c;并创建一个虚拟环境。 python -m venv django_pyecharts激活虚拟环境 django_pyecharts\Scripts\activate要停止使用虚拟环境&#xff0c;可执行命令 deactivate创建并激…

【string】查找最长的公共子序列(substr()/find())

实现一个算法查找两个字符串最长的公共子字符串。子字符串的介绍如下&#xff1a; 子字符串是指字符串中任意个连续的字符组成的子序列 输出一行&#xff0c;为最长公共子序列。 分析&#xff1a;使用substr()与find&#xff08;&#xff09;函数 if(str2.find(temp)!string…

【论文精读】MAE:Masked Autoencoders Are Scalable Vision Learners 带掩码的自动编码器是可扩展的视觉学习器

系列文章目录 【论文精读】Transformer&#xff1a;Attention Is All You Need 【论文精读】BERT&#xff1a;Pre-training of Deep Bidirectional Transformers for Language Understanding 【论文精读】VIT&#xff1a;vision transformer论文 文章目录 系列文章目录一、前言…

24. UE5 RPG制作属性面板(二)

在上一篇中&#xff0c;我们创建属性面板的大部分样式&#xff0c;这一篇里面接着制作。 在这一篇里我们需要有以下几个方面&#xff1a; 在界面增加一个属性按钮。属性按钮增加事件&#xff0c;点击时可以打开属性面板&#xff0c;属性面板打开时无法再次点击按钮。点击属性面…

01背包问题dp

01背包 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&#xff0c;N…

手撕算法-无重复字符的最长子串

描述 分析 滑动窗口&#xff0c;记录窗口中的所有出现的字符&#xff0c;然后窗口左边界固定&#xff0c;右边界右滑&#xff0c;如果&#xff0c;窗口中不存在新的字符&#xff0c;则右滑成功&#xff0c;否则左边界右滑&#xff0c;直到窗口中不存在右边界的值。 描述感觉不…

优化大型语言模型表现的策略与方法

在人工智能的世界里&#xff0c;大型语言模型如同 GPT-4 这样的存在&#xff0c;已经成为了一个璀璨的明星。这些模型的强大之处在于它们能够处理各种语言任务&#xff0c;比如写作、翻译和提问等。但是&#xff0c;想要让这些模型发挥出最大的作用&#xff0c;我们需要掌握一些…

登山小分队(dfs,模拟)

原题链接&#xff1a; 题目描述 Foxity和他的好友们相约去爬山&#xff0c;但是他们每个人都来到了不同的山脚下。整个山的结构类似一棵 "树"&#xff0c;有很多的观光节点通过一条条山道连接起来。 在图论中&#xff0c;树是一种无向图&#xff0c;其中任意两个顶…

Centos7 防火墙iptables?

Centos7 防火墙iptables&#xff1f; 文章目录 Centos7 防火墙iptables&#xff1f;1. 介绍2. firewalld 和 iptables区别3. 区域管理概念区域管理有如下几种不同的初始化区域&#xff1a; 4.iptables的配置1.简述2.基本原理3.iptables传输数据包的过程4. iptables规则表和链5.…

Flink CDC 1.18.1 Oracle 数据同步到postgresql

1、下载flink-1.18.1-bin-scala_2.12.tgz&#xff0c;linux通过&#xff1a; wget https://archive.apache.org/dist/flink/flink-1.18.1/flink-1.18.1-bin-scala_2.12.tgz 2、oracle11g客户端安装&#xff0c;下载&#xff1a; instantclient-basic-linux.x64-11.2.0.4.0.zi…

(65)整数的各位积和之差(66)统计一致字符串的数目

文章目录 1. 每日一言2. 题目&#xff08;65&#xff09;整数的各位积和之差3. 解题思路4. 代码5. 题目&#xff08;66&#xff09;统计一致字符串的数目6. 解题思路7. 代码8. 结语 1. 每日一言 无论你对此生的决定为何&#xff0c;一定要真诚地对待自己。 —《卧虎藏龙》- 2.…

结构体类型详细讲解(附带枚举,联合)

前言&#xff1a; 如果你还对结构体不是很了解&#xff0c;那么本篇文章将会从 为什么存在结构体&#xff0c;结构体的优点&#xff0c;结构体的定义&#xff0c;结构体的使用与结构体的大小依次介绍&#xff0c;同样会附带枚举与联合体 目录 为什么存在结构体&#xff1a; 结构…