leetcode

746.使用最小花费爬楼梯

力扣链接

动规五部曲

  1. 确定用作状态转移的dp数组的下标及含义 到达i阶的花费为dp[i]
  2. 动规核心 状态转移方程/递推公式 dp[i] = min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2])
  3. dp数组如何初始化 dp[0] = 0, dp[1] =0
  4. 确定遍历顺序 从前向后遍历
  5. 打印dp数组用于排错

动态规划

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