2023-12-17每日一题
一、题目编号
746. 使用最小花费爬楼梯
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费。
示例 1:
示例 2:
提示:
- 2 <= cost.length <= 1000
- 0 <= cost[i] <= 999
四、解题代码
class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();int dp[n+1];memset(dp, 0, sizeof(dp));dp[0] = 0;dp[1] = 0; for(int i = 2; i <= n; ++i){dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);}return dp[n];}
};
五、解题思路
(1) 一维动态规划。