题解 | 最小花费爬楼梯

最小花费爬楼梯

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

//  #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432
#include <iostream>
#include <vector>
#include <algorithm>
#define pre(i,j,k) for (int i = j; i < k; i++)
using namespace std;

int main() {
  ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);
  int n;
  cin >> n;
  vector<int> a(n + 1, 0);//--------------多出来的一个不是下标从1开始,是因为到了顶层之后不用往上⇔加0
  pre(i, 0, n) cin >> a[i];
  vector<int> dp(n + 3, 0);//----------------前面空两个0用来推导第0层和第1层,后面空一个用来存顶层的答案,对应a【n】
  pre(i, 0, n + 1)
    dp[i + 2] = min(dp[i], dp[i + 1]) + a[i];
  cout << dp[n + 2];
  return 0;
}
// 64 位输出请用 printf("%lld")

#写题解领奖励##牛客春招刷题训练营#
全部评论

相关推荐

12-14 11:43
黑龙江大学 Java
用微笑面对困难:确实比较烂,可以这么修改:加上大学的qs排名,然后大学简介要写一些,然后硕士大学加大加粗,科研经历第一句话都写上在复旦大学时,主要负责xxxx,简历左上角把学校logo写上,建议用复旦大学的简历模板
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务