文章目录

  • 题目
  • 思路
  • 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 使用最小化花费爬楼梯相关推荐

  1. 《LeetCode力扣练习》第70题 爬楼梯 Java

    <LeetCode力扣练习>第70题 爬楼梯 Java 一.资源 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶 ...

  2. 力扣-746.使用最小花费爬楼梯

    题目看不太懂,站在0和1的时候是不用花费的? dp[i]表示到达当前楼梯 i 时候的最小花费 class Solution(object):def minCostClimbingStairs(self ...

  3. 746. 使用zui小花费爬楼梯(JavaScript)

    var minCostClimbingStairs = function(cost) {//初始化,i为第i个阶梯,dp[i]为花费的总体力let dp=[]dp[0]=cost[0]dp[1]=co ...

  4. 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    学习内容 力扣算法 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯 具体内容 509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 .该数列由 0 ...

  5. leetcode - 746. 使用最小花费爬楼梯

    746. 使用最小花费爬楼梯 -------------------------------------- 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i] (索引 ...

  6. LeetCode-动态规划基础题-746. 使用最小花费爬楼梯

    描述 746.使用最小花费爬楼梯 数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始). 每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应 ...

  7. LeetCode Algorithm 746. 使用最小花费爬楼梯

    746. 使用最小花费爬楼梯 Ideas 首先确定题目类型,爬楼梯问题,并且给定了状态转移的限制,其实就已经可以确定状态转移方程了. 然后题目说可以从下标为0或下标为1的台阶开始爬,所以我们可以定义两 ...

  8. 746. 使用最小花费爬楼梯 golang 动态规划

    746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi. 每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以 ...

  9. 动态规划——使用最小花费爬楼梯(Leetcode 746)

    题目选自Leetcode 746.使用最小花费爬楼梯 题目描述: 解题代码:C语言 int minCostClimbingStairs(int* cost, int costSize) {int pr ...

最新文章

  1. matlab中bitget函数用法_MATLAB中SVM的用法
  2. UVA11389巴士司机问题
  3. Linux - 系统 - 基础操作
  4. Windows10彻底禁止更新
  5. (七)SpringBoot+SpringCloud —— 集成断路器
  6. SD-WAN新价值:中企通信与Fortinet强强联合 安全先行
  7. APPCAN学习笔记001---app快速开发AppCan.cn平台概述
  8. 读书笔记_打开量化投资的黑箱01
  9. 我一口气发现7个Safari 0day,苹果奖了7.5万美元
  10. 删除一行下方单元格上移_openpyxl3.0官方文档(5)——插入和删除行和列,移动单元格...
  11. Eventbus 使用方法和原理分析
  12. Hbase与传统关系型数据库对比
  13. 思科路由器如何导出配置文件_探讨怎样备份思科路由器的配置文件呢?
  14. 协议 ---ISO/OSI协议模型详解
  15. C++ 调用WINDOWS图片和传真查看器打开图片
  16. 苹果手机代理charles(此链接非私人连接)
  17. 股票网页下单接口怎么知道出场讯号?
  18. Mac上的取色器(拾色器)的比较 - 正版Mac版的取色器软件
  19. 有用的东东---信用卡利息计算过程
  20. C++新特性篇 - Lambada表达式

热门文章

  1. 20150217 IMX257实现GPIO-IRQ中断按键驱动程序
  2. 笔记:Java 性能优化权威指南 第6章 Java 应用性能分析技巧
  3. linux下简易搭建svnserver
  4. hdu-3488-Tour(KM最佳完美匹配)
  5. 从校内谈SNS-网络社区文化
  6. 为什么选用自增量作为主键索引
  7. 数据集转josion
  8. SecureCRT无法使用root账户远程连接ubuntu
  9. Asp.Net Mvc3.0(MEF依赖注入理论)
  10. Symbian c++ 在3版中实现并动态配置开机自启动