[dp]leetcode 746. Min Cost Climbing Stairs
生活随笔
收集整理的這篇文章主要介紹了
[dp]leetcode 746. Min Cost Climbing Stairs
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
輸入:一個數組cost,cost[i]表示越過第i個臺階的代價(可能是熱量,也可能是過路費)
輸出:走過這n個臺階,需要的最小代價
規則:一旦你為第i個臺階付出代價cost[i],那么你可以到達第i+1個臺階,也可以到達第i+2個臺階。你可以從第0個或者第1個臺階開始走。
分析:沒什么好說的,一步步走,沒走一步付出代價private void walk(int step,int currentcost) 表達站在第i個臺階,付出了多少代價。
你可以試著把cache去掉,當然是超時。加cache是因為,如果你曾經花費代價10站在了第5個臺階,那下次遇到需要花費代價15站在了第5個臺階,就沒必要進行走下去。因為代價肯定高嘛。
動態規劃分析:初步分析得到能站點第i個臺階的代價應該是與第i-1和第i-2臺階有關。
之前很多從回溯法到動態規劃都會發現dp[i]和回調函數的含義會有點變化。這次不會發生變化,直接拿過來。
總結
以上是生活随笔為你收集整理的[dp]leetcode 746. Min Cost Climbing Stairs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 思想已经高过行动好多了
- 下一篇: sqlserver数据库置疑处理