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

Day94 代码随想录打卡|动态规划篇--- 使用最小花费爬楼梯

题目(leecode T746):

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

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

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

方法:分析动态规划的五步

1:dp数组的定义:dp[i]表示到第i层楼梯所需的花费

2:dp的递推公式:因为每次只能走一步或两步楼梯,因此dp[i]可由dp[i-1]走一步到dp[i]或者由dp[i-2]走两步到dp[i],因此dp[i]等于min(dp[i - 2] + cost[i - 2], dp[i - 1] + cost[i - 1])。

3:dp数组初始化:因为第0层和第一层楼梯不需要耗费体力到达,因此dp[0]=dp[1]=0

4:遍历顺序:由递推公式可得遍历顺序是从前到后

5:举例推导dp数组:0 0 1 2 2 3 3 4 4 5 6

题解:

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

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

相关文章:

  • OpenAI 故障复盘 - 阿里云容器服务与可观测产品如何保障大规模 K8s 集群稳定性
  • API架构风格的深度解析与选择策略:SOAP、REST、GraphQL与RPC
  • 运放输入偏置电流详解
  • leetcode 5. 最长回文子串
  • 和为0的四元组-蛮力枚举(C语言实现)
  • 文献综述拆解分析
  • Python Opencv鼠标回调
  • JavaWeb中处理 Web 请求的方式总结
  • 828华为云征文|Flexus云服务器X实例快速部署在线测评平台,适用各种信息学教学
  • UniApp实现漂亮的音乐歌词滚动播放效果
  • k8s 高级调度
  • Goby 漏洞发布|(CVE-2024-45195)Apache OFBiz /viewdatafile 代码执行漏洞【已复现】
  • 使用Flask框架构建RESTful API:从基础到实践
  • 为OneAPI配置MySQL数据库及设置开机启动
  • Windows常用的快捷键
  • 缓存穿透、缓存击穿、缓存雪崩的区别是什么?
  • SprinBoot+Vue停车场管理系统的设计与实现
  • ASP.NET Core 入门教学九 集成kafka
  • 华三(H3C)HDM服务器硬件监控指标解读
  • 重视测试与调试,别做甩手掌柜
  • 字符串API
  • 使用go语言获取海南七星彩历史开奖记录并打印输出
  • 万龙觉醒免费辅助,自动打金挂机脚本!VMOS云手机辅助开局发育攻略!
  • 内网安全:反弹shell
  • 代码随想录算法训练营第二十三天| 455. 分发饼干、376. 摆动序列、53. 最大子序和
  • 07_React 路由