题解 | #最小花费爬楼梯#
最小花费爬楼梯
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)); }