zoukankan      html  css  js  c++  java
  • 746. Min Cost Climbing Stairs

    1. Question:

    746. Min Cost Climbing Stairs

    https://leetcode.com/problems/min-cost-climbing-stairs/

    On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed).

    Once you pay the cost, you can either climb one or two steps. You need to find minimum cost to reach the top of the floor, and you can either start from the step with index 0, or the step with index 1.

    Example 1:

    Input: cost = [10, 15, 20]
    Output: 15
    Explanation: Cheapest is start on cost[1], pay that cost and go to the top.
    

    Example 2:

    Input: cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1]
    Output: 6
    Explanation: Cheapest is start on cost[0], and only step on 1s, skipping cost[3].

    2. Solution:
    class Solution:
        def minCostClimbingStairs(self, cost):
            """
            :type cost: List[int]
            :rtype: int
            """
            if cost is None or len(cost) <= 1:
                return 0
    
            size = len(cost)
    
            if size == 2:
                return min(cost[0], cost[1])
    
            cost_bf = cost[0]
            cost_cur = cost[1]
            for i in range(2, size):
                tmp = min(cost_cur + cost[i], cost_bf + cost[i])
                cost_bf = cost_cur
                cost_cur = tmp
            return min(cost_cur, cost_bf)

    3. Complexity Analysis

    Time Complexity : O(N)

    Space Complexity: O(1)

  • 相关阅读:
    美化的滚动条
    网站系统开发参考网址
    正则表达式获取URL参数
    类实例 及 实例化对象 对象引用
    C# 静态方法 静态属性 调用静态方法
    C# 静态方法调用非静态方法
    winform 窗体间传值
    从数据库中读出数据并输出
    数据库链接字符串
    DbHelper
  • 原文地址:https://www.cnblogs.com/ordili/p/9992116.html
Copyright © 2011-2022 走看看