LCR 088. 使用最小花费爬楼梯
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int costSize = cost.size();
// 可以选择下标从0或者1的元素作为初始阶梯,所以dp[0]和dp[1]都是0
vector<int> dp(costSize+1, 0);
for(int i = 2; i <= costSize; i++){
// 到达i层的最小花费 = min(到达i-1层的最小花费+从i-1向上爬的花费, 到达i-2层的最小花费+从i-2向上爬的花费)
dp[i] = min((dp[i - 1] + cost[i - 1]), (dp[i - 2] + cost[i - 2]));
}
return dp[costSize];
}
};