当前位置: 首页 > article >正文

[LeetCode] 746.使用最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

示例 1:

输入:cost = [10,15,20]
输出:15
解释:你将从下标为 1 的台阶开始。
- 支付 15 ,向上爬两个台阶,到达楼梯顶部。
总花费为 15 。

示例 2:

输入:cost = [1,100,1,1,1,100,1,1,100,1]
输出:6
解释:你将从下标为 0 的台阶开始。
- 支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。
- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。
- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。
- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。
- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。
- 支付 1 ,向上爬一个台阶,到达楼梯顶部。
总花费为 6 。

提示:

  • 2 <= cost.length <= 1000
  • 0 <= cost[i] <= 999

题目链接:746. 使用最小花费爬楼梯 - 力扣(LeetCode)

解题思路:

采用动态规划的方式,先看题目和示例1,题目描述说可以从下标为0或下标为1的台阶开始爬,每次可以爬1or2个台阶,结合示例1,可以发现最终的终点是在数组后面,因此我们dp表开n+1个空间,dp[i]表示到这个台阶需要花费多少步,而dp[n]则是终点;

因为可以从下标为0或下标为1的台阶开始爬,所以dp[0]=dp[1]=0;

然后理清dp表的元素跟vector<int> cost表的关系方程,dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]);

构建完dp表后,dp[n]则是到终点所需的最小步数。

解题代码:

class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        int size = cost.size();
        vector<int> dp(size+1);
        //构建dp表
        for (int i = 2; i < size+1; ++i) {
            dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2]);
        }
        return dp[size];
    }
};


http://www.kler.cn/a/442485.html

相关文章:

  • 清除前端缓存的方式
  • Linux-----线程操作(创建)
  • Android中下载 HAXM 报错 HAXM installation failed,如何解决?
  • 从源码角度分析SpringMVC执行流程
  • Xcode 正则表达式实现查找替换
  • ORACLE-表空间和分区控制
  • ASP.NET |日常开发中连接Mysql数据库增删改查详解
  • Springboot实现本地文件上传、下载、在线预览
  • 从腾讯云的恶意文件查杀学习下PHP的eval函数
  • 【MATLAB第109期】基于MATLAB的带置信区间的RSA区域敏感性分析方法,无目标函数
  • [x86 ubuntu22.04]投影模式选择“只使用外部”,外部edp屏幕无背光
  • 让人工智能帮我写一个矩阵按键扫描程序
  • 一个异地访问局域网OA,ERP网站,远程桌面,异地游戏联机的方式
  • 【C/C++】头文件中应该使用#define作为保护,还是使用#pragma once进行保护?
  • LLaMA-Factory-0.9.1执行python src/webui.py会报错且会自动退出
  • ElasticSearch07-分片读写原理
  • Dynamics 365 CRM- 后端
  • 微服务中token鉴权设计的4种方式总结
  • Unity中触发器Trigger无法被射线检测到的问题
  • FPGA-PS端编程1:
  • Ubuntu20.04解决docker安装后is the docker daemon running? 问题
  • go语言压缩[]byte数据为zlib格式的时候,耗时较多,应该怎么修改?
  • Java 网络初始 ①-OSI七层网络模型 || 网络通信 || 五元组 || 协议分层
  • 通过增强的 vSphere 集成增强你的 vSphere 监控
  • Postman接口测试:全局变量/接口关联/加密/解密
  • Redis性能调优:深入剖析变慢原因及应对策略