题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7
#include <cmath>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param cost int整型vector
* @return int整型
*/
int minCostClimbingStairs(vector<int>& cost) {
if (cost.size()<2)
return 0;
std::vector<int> dp_fee(cost.size()+1, 0);
// write code here
for (int i = 2; i <= cost.size(); i++) {
dp_fee[i] = min(dp_fee[i-2] + cost[i-2], dp_fee[i-1] + cost[i-1]);
}
return dp_fee[cost.size()];
}
};
方法:比较简单,从下往上以此找到每个台阶所在位置的最小花费,满足动态规划的特征,最后返回到cost.size()位置的dp_fee大小
#动态规划#
查看21道真题和解析