使用最小花費爬樓梯

2021-10-25 17:14:37 字數 780 閱讀 2085

陣列的每個下標作為乙個階梯,第 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 。

這道題需要注意的是只有經過某一階,並從這一階爬上其他階的時候花費才存在,並且所花費的體力是該階的體力值。由於初始階梯可以是0階,也可以是一階,那麼在0階和1階的體力花費都是0。往後的階梯(i階)花費應是選擇經過i-1階還是i-2階所產生的體力值。經過i-1階到達i階的花費值應為到達i-1階的最小花費加上i-1階的體力,而經過i-2階到達i階的花費應是到達i-2階的最小花費加上i-2階本身的花費。

int

mincostclimbingstairs

(int

* cost,

int costsize)

return dp[costsize]

;}

使用最小花費爬樓梯

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

使用最小花費爬樓梯

力扣第746題 本題為 動態規劃題 首先我們可以先建立乙個新的陣列 與原陣列長度相同 為保證體力值消耗最小,因此我們應取最小值。建立乙個新陣列,保證與原陣列長度相同 int arr new int cost.length 接著我們分析題,每次走一步或者兩步,因此保證前兩項數值不變,從索引2開始依次對...

使用最小花費爬樓梯

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