c语言最小花费爬楼梯
时间: 2024-03-24 21:34:23 浏览: 12
在C语言中,求解最小花费爬楼梯问题可以使用动态规划的方法来解决。该问题可以描述为:有n个台阶,每个台阶上都有一个非负的花费值,你可以从第0个台阶或者第1个台阶开始爬楼梯,每次只能爬一层或者两层,求解到达第n个台阶所需的最小花费。
下面是解决该问题的C语言代码示例:
```c
#include <stdio.h>
int minCostClimbingStairs(int* cost, int costSize) {
int dp[costSize + 1];
dp[0] = 0;
dp[1] = 0;
for (int i = 2; i <= costSize; i++) {
dp[i] = fmin(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
}
return dp[costSize];
}
int main() {
int cost[] = {10, 15, 20};
int costSize = sizeof(cost) / sizeof(cost[0]);
int minCost = minCostClimbingStairs(cost, costSize);
printf("到达楼顶的最小花费为:%d\n", minCost);
return 0;
}
```
上述代码中,我们使用一个dp数组来保存到达每个台阶所需的最小花费。通过遍历数组,我们可以得到到达第n个台阶的最小花费。最后,我们输出到达楼顶的最小花费。