题解 | #最小花费爬楼梯#

最小花费爬楼梯

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));
}

#计算机小白#
全部评论

相关推荐

评论
1
收藏
分享
牛客网
牛客企业服务