题解 | #最小花费爬楼梯#

最小花费爬楼梯

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];
    }
};

全部评论

相关推荐

我就是0offer糕手:北大不乱杀
点赞 评论 收藏
分享
05-16 09:20
已编辑
中国民航大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务