刷代码随想录有感(99):动态规划——使用最小花费爬楼梯

题干:

代码:

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 - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
        }
        return dp[cost.size()];
    }
};

dp[i]含义:到达这个台阶之前已经所花的最小花费。

递推公式:dp[i]是dp[i-1]+cost[i-1]与dp[i-2]+cost[i-2]中的较小值。

初始化:题干提到可以从下标0或1开始,所以‘站上去’不需要花费,dp[0]=dp[1]=0。

遍历顺序:从前向后遍历cost数组。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 12:02:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 12:02:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 12:02:03       82 阅读
  4. Python语言-面向对象

    2024-06-11 12:02:03       91 阅读

热门阅读

  1. K8s速览

    K8s速览

    2024-06-11 12:02:03      35 阅读
  2. 强化学习学习笔记-李宏毅

    2024-06-11 12:02:03       35 阅读
  3. docker安装常用软件

    2024-06-11 12:02:03       33 阅读
  4. 2024年,计算机相关专业还值得选择吗?

    2024-06-11 12:02:03       30 阅读
  5. Linux-应用编程学习笔记(字符串处理)

    2024-06-11 12:02:03       36 阅读
  6. ASP.NET的WebService跨域CORS问题解决方案

    2024-06-11 12:02:03       34 阅读
  7. Ubuntu中安装Eclipse C++的详细步骤

    2024-06-11 12:02:03       35 阅读