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

动态规划

  • 思路:
    • 定义 dp[i] 为到达下标 i 层的最小花费;
    • 则状态转移方程为:
      • 第 i 层可以从第 i - 1 层爬一层或者第 i - 2 层爬两层到达;
      • 则 dp[i] = std::min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])
    • 初始状态:
      • dp[0] = 0
      • dp[1] = 0
    • 对所有楼层最小花费进行动态规划,最终结果为 dp[n]
cpp 复制代码
class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        int n = cost.size();
        std::vector<int> dp(n + 1);
        dp[0] = 0;
        dp[1] = 0;
        for (int i = 2; i <= n; i++) {
            dp[i] = std::min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
        }

        return dp[n];
    }
};

相关推荐
白羊by8 小时前
YOLOv1~v11 全版本核心演进总览
深度学习·算法·yolo
墨尘笔尖9 小时前
最大最小值降采样算法的优化
c++·算法
skylijf11 小时前
2026 高项第 6 章 预测考点 + 练习题(共 12 题,做完稳拿分)
笔记·程序人生·其他·职场和发展·软件工程·团队开发·产品经理
white-persist12 小时前
【vulhub shiro 漏洞复现】vulhub shiro CVE-2016-4437 Shiro反序列化漏洞复现详细分析解释
运维·服务器·网络·python·算法·安全·web安全
FL162386312912 小时前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
baizhigangqw13 小时前
启发式算法WebApp实验室:从搜索策略到群体智能的能力进阶
算法·启发式算法·web app
C雨后彩虹13 小时前
最多等和不相交连续子序列
java·数据结构·算法·华为·面试
一江寒逸13 小时前
零基础从入门到精通 AI Agent 开发(全栈保姆级教程)附加篇:AI Agent 面试八股文全集
人工智能·面试·职场和发展
久菜盒子工作室14 小时前
面试经验|产品经理|自我介绍
面试·职场和发展·产品经理
cpp_250114 小时前
P2347 [NOIP 1996 提高组] 砝码称重
数据结构·c++·算法·题解·洛谷·noip·背包dp