使用最小花费爬楼梯

93 阅读1分钟

使用最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。

方法一

var minCostClimbingStairs = function (cost) {
    var dp = [0, 0]
    const len = cost.length
    for (var i = 2; i < len + 1; i++) {
        dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])
    }
    return dp[len]
};

方法二

var minCostClimbingStairs = function (cost) {
    var a = 0
    var b = 0
    var c
    for (var i = 2; i < cost.length+1; i++) {
        c = Math.min(a + cost[i - 2], b + cost[i - 1])
        a = b
        b = c
    }
    return b
};