使用Python的最低成本攀登楼梯
假设有一个阶梯,这里的第i步将分配一些非负成本值cost[i]。当我们支付费用时,我们可以爬一两个步骤。我们必须找到达到最低要求的最低成本,我们也可以从索引为0的步骤开始,或者从索引为1的步骤开始。
因此,如果输入类似于cost=[12,17,20],则输出将为17,这是从步骤1开始的最便宜的头寸,因为我们必须支付该费用并转到顶部。
为了解决这个问题,我们将遵循以下步骤-
dp:=一个与cost大小相同的数组,并用0填充
dp[0]:=成本[0]
如果成本大小>=2,则
dp[1]:=成本[1]
对于成本范围2中的i-1
dp[i]:=成本[i]+dp[i-1],dp[i-2]的最小值
返回dp[-1],dp[-2]的最小值
让我们看下面的实现以更好地理解-
示例
class Solution:
def minCostClimbingStairs(self, cost):
dp = [0] * len(cost)
dp[0] = cost[0]
if len(cost) >= 2:
dp[1] = cost[1]
for i in range(2, len(cost)):
dp[i] = cost[i] + min(dp[i-1], dp[i-2])
return min(dp[-1], dp[-2])
ob = Solution()print(ob.minCostClimbingStairs([12,17,20]))输入项
[12,17,20]
输出结果
17
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语