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

最小花费爬楼梯

http://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e

using namespace std;

//dp
void MinCost(vector<int>& cost,vector<int> &dp,int n){
     dp[n]=min(dp[n-1]+cost[n-1],dp[n-2]+cost[n-2]);
}

int main(){
    int n;
    cin>>n;
    vector<int> cost(n,0);
    vector<int> dp(n+1,0);
    for(int i=0;i<n;i++)
        cin>>cost[i];
    for(int i=2;i<=n;i++)
        MinCost(cost,dp,i);//爬到第i个台阶的min花费
    cout<<dp[n];//注意这里为n,因为是爬到cost末尾元素的后一个
    return 0;
}

全部评论

相关推荐

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