一:题目

二:上码

class Solution {public:/**思路:1.分析题意给出的数组的下标代表楼梯的台阶数2.动态规划五步走1>:确定dp数组以及下标的含义dp[i]:表示到达第i层所需要花费的体力2>:确定dp数组的递推公式那么如何得到dp[i](花费的体力)呢?dp[i]由dp[i-1]或者dp[i-2]可以得到,但是我们需要在其中选取一个小的dp[i] = min(dp[i-1],dp[i-2]) + cost[i];为甚要加上cost[i],题目中给出了,我们每到一个台阶的话,需要支付cost[i]才能继续向上爬3>:确定dp数组的初始化cost.size() == 2那么的话,可以直接一步到楼顶(那就不用花费),也可以从0开始dp[0] = cost[0],然后再来一步到达楼顶  那就直接返回dp[0]和dp[1]中比较小的那个 (如果这个size() == 2)  cost.size() > 2dp[0] = cost[0];dp[1] = cost[1];4>:确定dp数组的遍历顺序这个肯定也是需要从前往后遍历,因为我们需要前面花费的体力5>:举例验证cost = [10,15,2,10]dp[3] = min(dp[2],dp[1]) (这里不用加上cost[3],因为最后一步就直接登顶了)dp[2] = min(dp[1],dp[0]) + cost[2]; **/int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();vector<int>dp(n+1);dp[0] = cost[0];dp[1] = cost[1];if(n == 2) return min(dp[0],dp[1]);for(int i = 2; i <= n; i++) {if(i == n){//最后一步是直接到达楼顶的,不需要计算楼顶那层的自己的费用dp[i] = min(dp[i-1],dp[i-2]);}else{dp[i] = min(dp[i-1],dp[i-2]) + cost[i];}}return dp[n];}
};

leetcode746. 使用最小花费爬楼梯相关推荐

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

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

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

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

  3. 算法题目——使用最小花费爬楼梯(动态规划)

    题目链接:746.使用最小花费爬楼梯 方法:动态规划 假设数组cost的长度为n,则n个阶梯分别对应下标0到n- 1,楼层顶部对应下标n,问题等价于计算达到下标n的最小花费.可以通过动态规划求解. 创 ...

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

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

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

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

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

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

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

    使用最小花费爬楼梯 方法一: class Solution {public int minCostClimbingStairs(int[] cost) {if (cost == null || cos ...

  8. D38| DP理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯

    DP理论基础 重要知识点: 1.动规和贪心的区别:动规是由前一个状态推导出来的,而贪心是局部直接选最优的 2.动规五部曲: 1)确定dp数组(dp table)以及下标的含义 2)确定递推公式 3)d ...

  9. [每日一题]746. 使用最小花费爬楼梯

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

最新文章

  1. s1200 博图高速脉冲计数值没有变化_赤峰发泡硅胶板,高速公路橡胶垫橡胶厂-京品吉...
  2. 机房日常技术总结——Windows篇
  3. HashTable类模板_C++
  4. iOS开发Objective-C基础之──多态
  5. 现在很多公司都在辞退年龄超过35岁以上的员工,原因到底为什么?
  6. OpenAI 将 k8s 扩展至 7500 个节点以支持机器学习
  7. 英语总结系列(二十二):Baby偶遇GCT
  8. C/C++ 获取本地日期时间常见方法
  9. javax.servlet.http.HttpServletResponse接口(HTTP版本)
  10. lj245a引脚功能图_lm324工作原理_引脚图功能_特性参数_内部电路及应用电路
  11. 金融应用,计算酬金 Exercise06_11
  12. let和expr的区别
  13. linux系统fasta程序,Linux生信练习2--fastq/fasta
  14. 基于51单片机的温湿度检测及调节系统
  15. ESP32-NVS存储(非易失性存储库)
  16. Hi3531 平台开发,Hi3532 平台开发
  17. 多种方法解决计算机程序中出现.DLL文件丢失的问题
  18. NASA Panoply读取netcdf画图
  19. AC_AttitudeControl_Heli.cpp的AC_PosControl::set_dt函数代码分析
  20. cv2.polylines()

热门文章

  1. JWT【JSON Web Token】 简述
  2. java excutorthread_Java中ThreadPoolExecutor的参数理解
  3. 【QGIS入门实战精品教程】5.1:QGIS地理坐标转火星坐标系(GCJ02)案例教程
  4. 【专升本计算机】最新甘肃省专升本考试C语言部分复习题带答案
  5. 回溯算法之布罗夫卫队(最大团问题)
  6. linux之用2张图片描述vim常见命令
  7. 由于未分配内存的指针导致段错误
  8. Android之基于BaseAdapter和SimpleAdapter的GridView
  9. Android之项目中如何用好构建神器Gradle?
  10. 使用VS开发C++ 控制台程序或其他项目出现 ‘ LINK : fatal error LNK1104: 无法打开文件“LIBCD.lib” ’ 常规解决办法