题解 | #最小花费爬楼梯#
最小花费爬楼梯
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]; } };