- C++
最小花费爬楼梯的代码
- 2025-1-20 13:16:13 @
/* created by chjshen, date: 2025-01-03 16:02 */
#include <cstdio>
#include <iostream>
using namespace std;
const int N = 1005;
int n, cost[N];
int dp[N];
int f(int k)
{
if (k == 0 || k == 1) return dp[k] = 0;
if (dp[k] != -1) return dp[k];
return dp[k] = min(f(k - 1) + cost[k - 1], f(k - 2) + cost[k - 2]);
}
void handle(void) { cout << f(n) << endl; }
void initInput(void)
{
ios::sync_with_stdio(0);
cin >> n;
for (int i = 0; i < n; i++) cin >> cost[i];
for (int i = 2; i <= n; i++) dp[i] = -1;
}
int main(void)
{
initInput();
handle();
return 0;
}
0 条评论
目前还没有评论...