斐波那契数列模型---使用最小花费爬楼梯

746. 使用最小花费爬楼梯 - 力扣(LeetCode)

1、状态表示

题目意思即:cost[i]代表从第i层向上爬1阶或者2阶,需要花费多少力气。如cost[0],代表从第0阶爬到第1阶或者第2阶需要cost[0]的力气。

一共有cost.size()阶台阶,爬到第cost.size()阶台阶最少需要花费多少力气。

即dp[i]代表,爬到第i阶最少需要花费多少力气

2、状态转移方程

首先:一次可以爬1阶或者2阶,并且花费的力气都是一样的。

那么dp[2],可以0-》2,从0爬到2花费的力气即为cost[0];也可以1-》2,从1爬到2花费的力气即为cost[1],但是前提是要爬到第1阶,而爬到第1阶所花费的力气为dp[1],则1-》2花费的力气为do[1] + cost[1]。所以dp[2] = min{cost[0],dp[1] + cost[1]}。

那么对于dp[i]:可以i-2-》i,从i-2爬到i花费的力气为cost[i-2],而爬到第i-2阶所花费力气为dp[i-2],则力气为dp[i-2] + cost[i-2];可以i-1-》i,从i-1爬到i花费的力气为cost[i-1],而爬到第i-1阶所花费力气为dp[i-1],则力气为dp[i-1] + cost[i-1]。

所以dp[i] = min{dp[i-2] + cost[i-2],dp[i-1] + cost[i- 1]}

3、初始化

题目所说,可以从第0层开始爬,也可以从第1层开始爬。所以初始化dp[0] = dp[1] = 0

4、遍历顺序

肯定是最高台阶由小变大遍历,即i从小到大遍历

5、返回值

返回dp[cost.size()],即n阶台阶。

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();//一共n阶台阶//越界检查if(n == 0 || n == 1) return 0;vector<int> dp(n+1);//dp表,大小为n+1dp[0] = 0,dp[1] = 0;//初始化dp[0] = dp[1] = 0for(int i= 2;i<=cost.size();i++)//遍历顺序{dp[i] = std::min(dp[i-2]+cost[i-2],dp[i-1]+cost[i-1]);//状态转移方程}return dp[cost.size()];//返回值}
};

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

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

相关文章

springboot/ssm学院个人信息管理系统Java高校课程作业管理系统web

springboot/ssm学院个人信息管理系统Java高校课程作业管理系统web 基于springboot(可改ssm)vue项目 开发语言&#xff1a;Java 框架&#xff1a;springboot/可改ssm vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xf…

编写高质量Python (第35条) 不要通过 throw 变换生成器状态

第 35 条 不要通过 throw 变换生成器状态 ​ 除 yield from 表达式(参见 第 33 条) 与 send 方法&#xff08;参见 第 34 条&#xff09;外&#xff0c;生成器还有一个高级功能&#xff0c;就是可以把调用者通过 throw 方法传过来的 Exception 实例重新抛出。这个 throw 方法用…

Vue 3 中的 Teleport 特性详解

引言 在 Vue 3 中&#xff0c;引入了一个名为 Teleport 的新特性。这个特性允许开发者将组件的子组件“传送”到 DOM 中的任意位置&#xff0c;而不仅仅是它们的直接父级内部。这一功能在处理如模态框、弹出菜单、提示框等需要从其原始位置在视觉上移动到其他地方的用户界面元…

Spring Boot与Spring Boot MVC:构建现代化Web应用的利器

Spring Boot与Spring Boot MVC&#xff1a;构建现代化Web应用的利器 在当今的软件开发领域&#xff0c;特别是在Java生态系统中&#xff0c;Spring框架已经成为构建企业级应用程序的首选。而在Spring的众多子项目中&#xff0c;Spring Boot和Spring MVC是两个非常重要的组成部…

C++_数据类型_字符串型

作用 用于表示一串字符 两种风格 C风格字符串&#xff1a;char 变量名[] "字符串值” 示例 注意 C风格的字符串要用双括号括起来 C风格字符串&#xff1a;string 变量名 "字符串值” 注意 用C风格字符串的时候&#xff0c;要包含这个头文件#include <st…

PostgreSQL常用SQL语句

文章目录 PostgreSQL常用SQL语句免密交互增删改查备份恢复数据迁移用户管理权限管理进程管理查询优化PostgreSQL常用SQL语句 PostgreSQL部署,参见PostgreSQL部署与配置 免密交互 命令行执行SQL语句或备份、恢复时,有以下两种方式 1.交互式

【比较mybatis、lazy、sqltoy、lambda、操作数据 】操作批量新增、分页查询【一】

orm框架使用Lambda性能比较 环境&#xff1a; idea jdk17 spring boot 3.0.7 mysql 8.0测试条件常规对象 orm 框架是否支持xml是否支持 Lambda对比版本mybatis☑️☑️3.5.4sqltoy☑️☑️5.2.98lazy✖️☑️1.2.3-JDK17 数据库表(含有唯一性索引s_u) CREATE TABLE sys_u…

吴恩达机器学习-可选实验室-梯度下降-Gradient Descent for Linear Regression

文章目录 目标工具问题陈述计算损失梯度下降总结执行梯度下降梯度下降法成本与梯度下降的迭代预测绘制祝贺 目标 在本实验中&#xff0c;你将:使用梯度下降自动化优化w和b的过程 工具 在本实验中&#xff0c;我们将使用: NumPy&#xff0c;一个流行的科学计算库Matplotlib&…

【茶话数据结构】查找最短路径——Dijkstra算法详解(保姆式详细图解,步步紧逼,保你学会)

&#x1f4af; 博客内容&#xff1a;【茶话数据结构】查找最短路径——Dijkstra算法详解 &#x1f600; 作  者&#xff1a;陈大大陈 &#x1f989;所属专栏&#xff1a;数据结构笔记 &#x1f680; 个人简介&#xff1a;一个正在努力学技术的准前端&#xff0c;专注基础和实…

【学习心得】为Django项目创建专用MySQL用户并赋予权限

一、问题描述 也许你在本地开发Django项目的时候不会关心&#xff0c;项目A所用的MySQL数据库能否被项目B访问。但若你使用的公司服务器or学校服务器&#xff0c;这种情况下很多人共用一个MySQL&#xff0c;你就会担心别人或别的项目胡乱访问你正在开发的项目所使用的数据库。这…

算法D33 | 贪心算法3 | 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果

1005.K次取反后最大化的数组和 本题简单一些&#xff0c;估计大家不用想着贪心 &#xff0c;用自己直觉也会有思路。 代码随想录 Python: class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:nums.sort(keylambda x: abs(x), reverseT…

【python】遵守 robots.txt 规则的数据爬虫程序

程序1 编写一个遵守 robots.txt 规则的数据爬虫程序涉及到多个步骤&#xff0c;包括请求网页、解析 robots.txt 文件、扫描网页内容、存储数据以及处理异常。由于编程语言众多&#xff0c;且每种语言编写爬虫程序的方式可能有所不同&#xff0c;以下将使用 Python 语言举例&am…

【论文】A Survey of Monte Carlo Tree Search Methods阅读笔记

本文主要是将有关蒙特卡洛树搜索的文献&#xff08;2011年之前&#xff09;进行归纳&#xff0c;概述了核心算法的推导&#xff0c;给出了已经提出的许多变化和改进的一些结构&#xff0c;并总结了MCTS方法已经应用于的博弈和其他领域的结果。 蒙特卡洛树搜索是一种通过在决策…

Redis在中国火爆,为何MongoDB更受欢迎国外?

一、概念 Redis Redis&#xff08;Remote Dictionary Server&#xff09;是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。Redis是由Salvatore Sanfilippo于2009年启动开发的&#xff0c;首个版本于同年5月发布。 MongoDB MongoDB…

C++练手题

第 1 题 【 问答题 】 • 红与黑 有一间长方形的房子&#xff0c; 地上铺了红色、 黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上&#xff0c; 只能向相邻的黑色瓷砖移动。 请写一个程序&#xff0c; 计算你总共能够到达多少块黑色的瓷砖。 时间限制&#xff1a; 1000…

基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析

在自然和社会科学领域有大量与地理或空间有关的数据&#xff0c;这一类数据一般具有严重的空间异质性&#xff0c;而通常的统计学方法并不能处理空间异质性&#xff0c;因而对此类型的数据无能为力。以地理加权回归为基础的一系列方法&#xff1a;经典地理加权回归&#xff0c;…

Linux相关小技巧《三》

需求&#xff1a; 前一段时间有收到这样的一个关于linux用户的权限相关的需求&#xff0c;在centos上给用户创建一个用SSH的密钥访问服务器&#xff0c;另给该用户添加到root权限组。记录下了步骤&#xff0c;分享给大家。 步骤&#xff1a; 添加root用户组&#xff1a; gr…

跳跃游戏问题(算法村第十七关黄金挑战)

跳跃游戏 55. 跳跃游戏 - 力扣&#xff08;LeetCode&#xff09; 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &…

人工智能-零基础

机缘 扩充下知识栈&#xff0c;准备零基础开始 人工智能零基础 日常 日常水一下博客… 憧憬 努力成为一个会人工智能的程序员

软考笔记--构件与软件复用

构件也称为组件&#xff08;component&#xff09;&#xff0c;是一个功能相对独立的具有可复用价值的软件单元。在面向对象的方法中&#xff0c;一个构件有一组对象组成&#xff0c;包含可一些协作的类的集成&#xff0c;它们协同工作来提供一种系统功能。可复用性是指系统和其…