题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e
此类解决方法通常为:
1.找状态转移方程
此题为
到达i层花费dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
2.找特殊情况
此题为
dp[0]=dp[1]=0;
#计算机小白##include <stdio.h>
int min(int n1,int n2)
{
return n1<=n2?n1:n2;
}
int mincost(int n,int *cost)
{
int dp[n+1];
int i;
dp[0]=dp[1]=0;
for(i=2;i<=n;i++)
{
dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
}
return dp[n];
}
int main()
{
int n,i;
scanf("%d",&n);
int cost[n];
for(i=0;i<n;i++)
{
scanf("%d",&cost[i]);
}
printf("%d",mincost(n,cost));
}
