1. 程式人生 > >LeetCode746. 使用最小花費爬樓梯(Python)

LeetCode746. 使用最小花費爬樓梯(Python)

陣列的每個索引做為一個階梯,第 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。

注意:

  1. cost 的長度將會在 [2, 1000]
  2. 每一個 cost[i] 將會是一個Integer型別,範圍為 [0, 999]

程式碼實現:

class Solution(object):
    def minstrength(self,nums):
        #res用來儲存到每個臺階所消耗的最少能量
        #+1是因為nums陣列最後一個索引並不是樓頂,它是到倒數第一個臺階所消耗的能量
        #題中沒有給倒數第一個臺階或倒數第二個臺階到頂部所消耗的能量
        #不妨假設到樓頂的力量消耗為0
        #當0個臺階時,消耗0
        #當1個臺階時,由於可以跨兩個臺階,最少消耗也是0
        res = [0]*(len(nums)+1)
        #得到到每一個臺階(i>=2)所消耗的最少能量
        #可以邁1步,也可以邁2步
        for i in range(2,len(nums)+1):
                 #比較【到i-1所需能量+ (i-1)到i所需能量】(即邁一步)和邁兩步所需的能量
            res[i] = min(res[i-1] + nums[i-1],res[i-2] + nums[i-2])

        return res[-1]

相關推薦

LeetCode746. 使用花費樓梯(Python)

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1

leetcode 746. 使用花費樓梯(python)

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1

LeetCode Problem 使用花費樓梯 Python

爬到索引為i的樓梯(第一層索引為0)的最小花費r[i]=min(r[i-1] + cost[i-1], r[i-2] + cost[i-2]), 確定了狀態轉移方程。但是注意r[i]定義為爬到第i層,並沒有爬完整個樓梯,所以最後返回值並不是r[-1],而是min(r[-1]+

使用花費樓梯python

題目描述:陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1

Leetcode746.Min Cost Climbing Stairs使用花費樓梯

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或

28.動態規劃-使用花費樓梯-Leetcode 746(python

題目描述 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選

leetcode746. 使用花費樓梯 動態規劃簡單題 python3

          陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從

LeetCode 746. 使用花費樓梯(C++、python

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1

LeetCode746題:使用花費樓梯

思路:  這題與LeetCode198題“打家劫舍”屬於相同題型,都涉及到動態規劃的思想。 對於第i階樓梯來說,有兩種情況,要麼走第i階樓梯,要麼直接跨過第i階樓梯。而最終要求從1階登過i階的最小總花費cost(i)就可以用下面的公式表示: cost(i) = min

LeetCode746. 使用花費樓梯

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1

使用花費樓梯dp

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。

[LeetCode]746. 使用花費樓梯(Min Cost Climbing Stairs)

一、題目: LeetCode地址​​​​​​​ 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在

leetcode 746:使用花費樓梯

定義一個數組用來儲存最小的體力花費值,當前階梯i值的最小的體力花費值當前的階梯i當前的體力值+第i-1的最小體力值,第i-2的最小體力值的較小的一個 d[i]=std::min(d[i-1]+cost[i],d[i-2]+cost[i]); int minCostClimbingSta

使用花費樓梯 (LeetCode

描述 你需要爬上一個N層的樓梯,在爬樓梯過程中,每階樓梯需花費非負代價,第i階樓梯花費代價表示為cost[i],一旦你付出了代價,你可以在該階基礎上往上爬一階或兩階。你可以從第0階或者第1階開始,請找到到達頂層的最小的代價是多少 N和cost[i]皆為整數,且N∈[2

leetcode746_使用花費樓梯

 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作

使用花費樓梯(Min Cost Climbing Stairs) Java動態規劃入門分析一

前言 題幹 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。

leetcode-746. 使用花費樓梯

一、問題描述陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或

Leetcode-------使用花費樓梯

746. 使用最小花費爬樓梯 陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 cost[i](索引從0開始)。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始

[LeetCode javaScript] 746. 使用花費樓梯

陣列的每個索引做為一個階梯,第 i個階梯對應著一個非負數的體力花費值 costi。 每當你爬上一個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬一個階梯或者爬兩個階梯。 您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 0 或 1 的元素作為初始階梯。 示例

使用花費樓梯

動態規劃問題,在爬樓梯的基礎上增加了權值,所以這裡面計算的最小路徑,而不是路徑的條數,整體思路還是一樣。 設樓梯的階數為n,也就是cost的長度,T用來儲存到達每一階臺階的花費,那麼從1~n-1階的範圍內,可以得出狀態轉移方程:  T[i] = MIN(cost[i]