zoukankan      html  css  js  c++  java
  • 爬楼梯

    746. Min Cost Climbing Stairs

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

    每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。

    您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。

    示例 1:

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

    思路:位于位置i,可以花费cost[i]爬一阶楼梯,或者爬二阶楼梯。
    当只有一阶楼梯时,本身就处于终点,不需要再花费力气了。

     1 class Solution(object):
     2     def minCostClimbingStairs(self, cost):
     3         """
     4         :type cost: List[int]
     5         :rtype: int
     6         """
     7 
     8         n=len(cost)
     9         if(n==1): return cost[0]
    10 
    11         dp=[0 for j in range(n+1)]
    12 
    13         dp[1]=0
    14         dp[2]=min(dp[1]+cost[1],cost[0])
    15         for i in range(3,n+1):
    16             dp[i]=min(dp[i-1]+cost[i-1], dp[i-2]+cost[i-2])
    17         
    18         return dp[n]
  • 相关阅读:
    jmeter 插件
    jmeter beanshell
    Linux awk&sed
    Linux 各文件系统配置
    Linux常用基本命令 1
    testNg自动化,读取excel的数据
    jmeter 控制器
    Web
    SQL语句
    HTML
  • 原文地址:https://www.cnblogs.com/zijidan/p/12536499.html
Copyright © 2011-2022 走看看