zoukankan      html  css  js  c++  java
  • 0746使用最小花费爬楼梯 Marathon

    数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。

    每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。

    请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。

    示例 1:

    输入:cost = [10, 15, 20]
    输出:15
    解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。
     示例 2:

    输入:cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
    输出:6
    解释:最低花费方式是从 cost[0] 开始,逐个经过那些 1 ,跳过 cost[3] ,一共花费 6 。

    提示:

    cost 的长度范围是 [2, 1000]。
    cost[i] 将会是一个整型数据,范围为 [0, 999] 。

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs

    参考:

    python

    # 0746.最小花费爬楼梯
    
    class Solution:
        def minCostClimbingStairs(self, cost: [int]) -> int:
            """
            动态规划, dp[i] = min(dp[i-1], dp[i-2]) + cost[i]
            - 1.dp数组及下标
            - 2.递推公式
            - 3.初始化
            - 4.遍历顺序
            :param cost:
            :return:
            """
            dp = [0] * len(cost)
            dp[0] = cost[0]
            dp[1] = cost[1]
            for i in range(2, len(cost)):
                dp[i] = min(dp[i-1], dp[i-2]) + cost[i]
            print(dp)
            return min(dp[len(cost)-1], dp[len(cost)-2])
    
    if __name__ == "__main__":
        cost = [10, 15, 20, 1, 30, 1]
        test = Solution()
        print(test.minCostClimbingStairs(cost))
    

    golang

    package dynamicPrograming
    
    // 动态规划
    func minCostClimbingStairs(cost []int) int {
    	dp := make([]int, len(cost))
    	dp[0], dp[1] = cost[0], cost[1]
    	for i:=2;i<len(cost);i++ {
    		dp[i] = min(dp[i-1], dp[i-2]) + cost[i]
    	}
    	return min(dp[len(cost)-1], dp[len(cost)-2])
    }
    
    func min(a, b int) int {
    	if a < b {
    		return a
    	}
    	return b
    }
    
    
  • 相关阅读:
    登录的验证码
    分页效果
    弹出新窗口
    添加软键盘
    左侧菜单
    制作导航
    DEV第三方控件的GalleryControl控件
    div悬浮在屏幕的中间及点击按钮关闭弹出框
    鼠标经过图片时向前突出并放大图片
    UIImageView实现加载网络gif图片
  • 原文地址:https://www.cnblogs.com/davis12/p/15616845.html
Copyright © 2011-2022 走看看