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