题解 | #最小花费爬楼梯#
最小花费爬楼梯
https://www.nowcoder.com/practice/6fe0302a058a4e4a834ee44af88435c7
动态规划。
一个小tip,将楼顶当作0花费楼梯加到cost数组和状态数组尾部,可以减少一点代码量。
#include <vector>
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int len = cost.size();
vector<int> dp(len + 1); // 状态数组
dp[0] = cost[0];
dp[1] = cost[1];
cost.push_back(0); // 楼顶
for (int i = 2; i <= len; i++) {
dp[i] = dp[i - 1] < dp[i - 2] ? dp[i - 1] + cost[i] : dp[i - 2] + cost[i];
}
return dp[len];
}
};

美团公司福利 3017人发布