746. 使用最小花费爬楼梯

  1. dp[i],到达第i阶所需的花费
  2. dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2])
  3. dp[0],dp[1]等于0。原地不需要花费
    1. class Solution {
    2. public:
    3. int minCostClimbingStairs(vector<int>& cost) {
    4. //有i阶楼梯,爬到楼顶所需的花费
    5. int n=cost.size();//总共有n个台阶,下标0~n-1
    6. int dp[n+1];//n+1代表阶梯为0~n
    7. dp[0]=0,dp[1]=0;
    8. for(int i=2;i<=cost.size();i++)
    9. {
    10. dp[i] = min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
    11. }
    12. return dp[n];
    13. }
    14. };