力扣 746 使用最小化花费爬楼梯
文章目录
- 题目
- 思路
- AC代码
- 收获
题目
使用最小化花费爬楼梯
思路
一个动态规划的题目,典型的多阶段求解最优解的问题。用dp数组存储对应的状态值,表示到第i个楼梯花费的最小体力。
做动态规划题的优先是要考虑边界条件,再是动态转移方程,其实不用管前面是怎样走过来的,我们只需要使用这个最值即可。
AC代码
C++版本的
class Solution {public:int minCostClimbingStairs(vector<int>& cost) {int len=cost.size();//对应的长度int dp[1010];dp[0]=cost[0];dp[1]=cost[1];for(int i=2;i<len;++i){dp[i]=min(dp[i-1]+cost[i],dp[i-2]+cost[i]);//dp[i]表示的是走到台阶i所需要的最小体力}if(dp[len-1]>dp[len-2]) return dp[len-2];else return dp[len-1];}
};
python 语言的,其中python使用的列表比较灵活,可以根据数据的多少来确定值。
class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:dp=[]dp.append(cost[0])dp.append(cost[1])size=len(cost)for i in range(2,size):a=min(dp[i-1]+cost[i],dp[i-2]+cost[i])#不能dp[i]=...要用一个数a来确定最小值再追加进去dp.append(a)if(dp[size-1]>dp[size-2]) :return dp[size-2]else: return dp[size-1]
收获
立志python和C++都很拿手
力扣 746 使用最小化花费爬楼梯相关推荐
- 《LeetCode力扣练习》第70题 爬楼梯 Java
<LeetCode力扣练习>第70题 爬楼梯 Java 一.资源 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶 ...
- 力扣-746.使用最小花费爬楼梯
题目看不太懂,站在0和1的时候是不用花费的? dp[i]表示到达当前楼梯 i 时候的最小花费 class Solution(object):def minCostClimbingStairs(self ...
- 746. 使用zui小花费爬楼梯(JavaScript)
var minCostClimbingStairs = function(cost) {//初始化,i为第i个阶梯,dp[i]为花费的总体力let dp=[]dp[0]=cost[0]dp[1]=co ...
- 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
学习内容 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 具体内容 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 ...
- leetcode - 746. 使用最小花费爬楼梯
746. 使用最小花费爬楼梯 -------------------------------------- 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i] (索引 ...
- LeetCode-动态规划基础题-746. 使用最小花费爬楼梯
描述 746.使用最小花费爬楼梯 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始). 每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应 ...
- LeetCode Algorithm 746. 使用最小花费爬楼梯
746. 使用最小花费爬楼梯 Ideas 首先确定题目类型,爬楼梯问题,并且给定了状态转移的限制,其实就已经可以确定状态转移方程了. 然后题目说可以从下标为0或下标为1的台阶开始爬,所以我们可以定义两 ...
- 746. 使用最小花费爬楼梯 golang 动态规划
746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi. 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以 ...
- 动态规划——使用最小花费爬楼梯(Leetcode 746)
题目选自Leetcode 746.使用最小花费爬楼梯 题目描述: 解题代码:C语言 int minCostClimbingStairs(int* cost, int costSize) {int pr ...
最新文章
- matlab中bitget函数用法_MATLAB中SVM的用法
- UVA11389巴士司机问题
- Linux - 系统 - 基础操作
- Windows10彻底禁止更新
- (七)SpringBoot+SpringCloud —— 集成断路器
- SD-WAN新价值:中企通信与Fortinet强强联合 安全先行
- APPCAN学习笔记001---app快速开发AppCan.cn平台概述
- 读书笔记_打开量化投资的黑箱01
- 我一口气发现7个Safari 0day,苹果奖了7.5万美元
- 删除一行下方单元格上移_openpyxl3.0官方文档(5)——插入和删除行和列,移动单元格...
- Eventbus 使用方法和原理分析
- Hbase与传统关系型数据库对比
- 思科路由器如何导出配置文件_探讨怎样备份思科路由器的配置文件呢?
- 协议 ---ISO/OSI协议模型详解
- C++ 调用WINDOWS图片和传真查看器打开图片
- 苹果手机代理charles(此链接非私人连接)
- 股票网页下单接口怎么知道出场讯号?
- Mac上的取色器(拾色器)的比较 - 正版Mac版的取色器软件
- 有用的东东---信用卡利息计算过程
- C++新特性篇 - Lambada表达式