力扣 746 使用最小花費爬樓梯

2021-10-05 02:31:41 字數 741 閱讀 7480

陣列的每個索引做為乙個階梯,第 i個階梯對應著乙個非負數的體力花費值 costi。

每當你爬上乙個階梯你都要花費對應的體力花費值,然後你可以選擇繼續爬乙個階梯或者爬兩個階梯。

您需要找到達到樓層頂部的最低花費。在開始時,你可以選擇從索引為 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、從前乙個台階走。 2、從前兩個台階走。

所以求當前最小花費的狀態轉移方程為:

cost[i] += min(cost[i - 1],cost[i - 2])
有了狀態轉移方程問題就很容易解決了,我們只需從第三個數台階依此求到達此台階的最小花費即可。

**如下:

public int mincostclimbingstairs(int cost) 

return cost[len - 1] > cost[len - 2] ? cost[len - 2] : cost[len - 1];

}

746 使用最小花費爬樓梯

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

746 使用最小花費爬樓梯

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

746 使用最小花費爬樓梯

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