Leetcode-劍指 Offer II 088. 爬樓梯的最少成本
阿新 • • 發佈:2021-08-10
劍指 Offer II 088. 爬樓梯的最少成本
陣列的每個下標作為一個階梯,第 i 個階梯對應著一個非負數的體力花費值 cost[i](下標從 0 開始)。
每當爬上一個階梯都要花費對應的體力值,一旦支付了相應的體力值,就可以選擇向上爬一個階梯或者爬兩個階梯。
請找出達到樓層頂部的最低花費。在開始時,你可以選擇從下標為 0 或 1 的元素作為初始階梯。
線性dp
狀態轉移方程:$ tmp=min(ans[i-1]+cost[i-1],ans[i-2]+cost[i-2])$
題設條件:0 或 1 的元素作為初始階梯,即登上0和1的花費為0
注意一下題目要求是最後登上階梯頂,最後在給定的有代價的階梯之外還有一級階梯
class Solution { public: int minCostClimbingStairs(vector<int>& cost) { vector<int> ans; ans.push_back(0); ans.push_back(0); for (int i=2;i<=cost.size();i++){ int tmp=min(ans[i-1]+cost[i-1],ans[i-2]+cost[i-2]); ans.push_back(tmp); } return ans[cost.size()]; } };