跟爬楼梯思想很类似。
leetcode70.爬楼梯(简单):https://blog.csdn.net/zhangjiaji111/article/details/121801918
思路:dp
dp[i]表示到i位置的台阶的最低花费
dp[n]=min(dp[n-1]+cost[n-1],dp[n-2]+cost[n-2])
边界:dp[0] = dp[1] = 0;
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int n = cost.size();
vector<int> dp(n + 1);
dp[0] = dp[1] = 0;
for (int i = 2; i <= n; ++i) {
dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
}
return dp[n];
}
};