LeetCode-动态规划基础题-746. 使用最小花费爬楼梯
生活随笔
收集整理的這篇文章主要介紹了
LeetCode-动态规划基础题-746. 使用最小花费爬楼梯
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
746.使用最小花費爬樓梯
數組的每個下標作為一個階梯,第 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 。
提示:
cost 的長度范圍是 [2, 1000]。
cost[i] 將會是一個整型數據,范圍為 [0, 999] 。
思路:動態規劃
//1.確定dp[i]數組與下標的含義:達到第i個臺階所花費的最少體力//2.確定遞推公式:有兩個途徑得到dp[i];首先選取上一步dp[i-1]跟dp[i-2]中最小的,// 然后加上當前臺階的花費dp[i] = min(dp[i-1], dp[i-2]) + cost[i];//3.dp數組初始化:dp[0]是第0個臺階,dp[1]是第1個臺階//4.確定遍歷順序//5.舉例推導dp數組時間復雜度:O(n)
空間復雜度:O(n)
優化動態規劃
時間復雜度:O(n)
空間復雜度:O(1)
總結
以上是生活随笔為你收集整理的LeetCode-动态规划基础题-746. 使用最小花费爬楼梯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode-基础动态规划-70.
- 下一篇: LeetCode-动态规划基础题-62.