CODE

class Solution:
    def minCostClimbingStairs(self, cost: List[int]) -> int:
        for i in range(2, len(cost)):
            # To cost[i] represents the cost you need to pay to get to next
            # step starting from i.
            # But to get to step i, you need to pay some cost. 
            # That is pay the cost from 
            # - second last step and take two steps
            # - last step and take one step
            cost[i] += min(cost[i-2], cost[i-1])
        # Once you are at the end of array the result is minimum of
        # cost to get to last step or second last step
        return min(cost[-1], cost[-2])
            
            
        

Last updated