746. 使用最小花费爬楼梯
一、题目描述
给你一个整数数组 cost
,其中 cost[i]
是从楼梯第 i
个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0
或下标为 1
的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
二、思路
动态规划
三、代码
class Solution { public: int minCostClimbingStairs(vector<int>& cost) { int size = cost.size(); vector<int> minCost(size); minCost[0] = 0; minCost[1] = min(cost[0], cost[1]); for (int i = 2; i < size; i++) { minCost[i] = min(minCost[i - 1] + cost[i], minCost[i - 2] + cost[i - 1]); } return minCost[size - 1]; } };