一、题目描述
示例 1:
输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。
- 1 阶 + 1 阶
- 2 阶
示例 2:
输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。
- 1 阶 + 1 阶 + 1 阶
- 1 阶 + 2 阶
- 2 阶 + 1 阶
链接: 746. 使用最小花费爬楼梯
二、参考代码
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int len = cost.size();
int index = len + 1;
int *dp = new int[index];
dp[0] = 0;
dp[1] = 0;
for(int i=2;i<=len;i++)
{
dp[i] = min(dp[i - 1] + cost[i - 1] , dp[i - 2] + cost [i - 2]);
}
return dp[len];
}
};