题目描述链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs/
解题思路:动态规划,自底向上,边界条件:dp[0]=0,dp[1]=cost[0],其动态转移方程为:dp[i]=min(dp[i-1],dp[i-2])+cost[i-1] (由于dp[0]被占用,所以这里dp[i]代表的走到i-1的花费)
LeetCode解题代码如下:
class Solution { public: int dp[1005]; int minCostClimbingStairs(vector<int>& cost) { dp[0]=0; dp[1]=cost[0]; int len=cost.size(); for(int i=2;i<=len;i++){ dp[i]=min(dp[i-1],dp[i-2])+cost[i-1]; } return min(dp[len],dp[len-1]); } };