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

最小花费爬楼梯

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

提供一个方便提取到任意位置点的最小花费吧,觉得不错点个赞

#include<iostream>
#include<vector>

using namespace std;
int MinCost(vector<int> &cost, int len){
    for(int i = 5; i <= len; i++){
        //cost[i-5]+cost[i-2]:前两个台阶到此台阶的花费
        //cost[i-4]+cost[i-1]:前一个台阶到此台阶的花费
        cost[i-3] = cost[i-4]+cost[i-1]>cost[i-5]+cost[i-2]?cost[i-5]+cost[i-2]:cost[i-4]+cost[i-1];
    }
    return cost[len-3];
}

int main(){
    int num, value;
    cin >> num;
    vector<int> vec(num+5);
    for(int i = 3; i < num+3; i++){
        cin >> value;
        vec[i] = value;
    }
    cout << MinCost(vec,num+3) << endl;
    return 0;
}
全部评论

相关推荐

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