746. 使用最小花费爬楼梯
- dp[i],到达第i阶所需的花费
- dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])
- dp[0],dp[1]等于0。原地不需要花费
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
//有i阶楼梯,爬到楼顶所需的花费
int n=cost.size();//总共有n个台阶,下标0~n-1
int dp[n+1];//n+1代表阶梯为0~n
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[n];
}
};