My Sixty-Fourth Page - 使用最小的花费爬楼梯 - By Nicolas

这篇page是针对leetcode上的746.使用最小的花费爬楼梯所写的。小尼先简单的说明一下这道题的意思,其实就是给出一个整数组cost,并且其中cost[i]是从楼梯第一个台阶向上爬所需要支付的费用,支付了之后可以选择向上爬一个或者两个台阶。

小尼先说明一下这道题的解题的思想,我们细化每一步,就是说我们考虑一下我们dp[i]应该由什么组成,因为我们只能向上跳一层或者两层,所以我们的dp[i] = dp[i - 1] + cost[i - 1] 或者dp[i] = dp[i - 2] + cost[i - 2]我们的dp不论怎么样都是由下面的一层或者是下面的两层上来的,所以我们需要给出对应的dp的等式

小尼接下来给出对应的代码:

class Solution {
    public int minCostClimbingStairs(int[] cost) {
        int n = cost.length;
        int []dp = new int[n + 1];
        dp[0] = dp[1];

        for(int i = 2; i <= n; i++){
            dp[i] = Math.min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
        }

        return dp[n];
    }
}

上面所写的其实就是我们定义一个全新的数组dp用于记录我们的每一层所需要的费用,然后我们在用一个for循环进行对应的递归循环进行不段的遍历。

希望上面的代码可以给小伙伴们带来帮助~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值