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