class Solution {
public:
int minCostClimbingStairs(vector<int>& cost)
{
int length=cost.size();
int dp[length+2];
dp[1]=0;
if(length==3)
{
dp[3]=min(cost[0]+cost[2],cost[1]);
return dp[3];
}
if(length==2)
{
dp[2]=min(cost[0],cost[1]);
return dp[2];
}
dp[2]=min(cost[0],cost[1]);
dp[3]=min(cost[0]+cost[2],cost[1]);
for(int i=4;i<length;i++)
{
dp[i]=cost[i]+min(dp[i-1],dp[i-2]);
}
return min(dp[length-1],dp[length-2]);
}
};
动态规划 --使用最小花费爬楼梯
最新推荐文章于 2024-02-28 20:54:58 发布