题解 | 最小花费爬楼梯
最小花费爬楼梯
https://www.nowcoder.com/practice/9b969a3ec20149e3b870b256ad40844e
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int n,dp[N],a[N]; int main(){ cin>>n; for(int i = 0;i<n;i++) cin>>a[i]; dp[0] = dp[1] = 0; for(int i = 2;i<=n;i++){ dp[i] = min(dp[i-1]+a[i-1],dp[i-2]+a[i-2]); } cout<<dp[n]; return 0; }
一开始可以从0或者1开始,所以上到0和1的花费为0,然后for循环遍历,判断从i-1还是从i-2上来花费低,最后dp[n]就是答案
#牛客春招刷题训练营#https://www.nowcoder.com/discuss/727521113110073344