题目链接:746. 使用最小花费爬楼梯 - 力扣(LeetCode)
先分析题目:
这是一道动态规划的题,我们可以根据动态规划五部曲分析解答这道题。
参考代码:
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
int n = cost.size();
//由于我们要返回的是dp[n],所以需要开n+1个空间的dp表(数组)
vector<int> dp(n+1);
//填表前需要先初始化dp[0],dp[1]的值,以免填表时越界
dp[0]=dp[1]=0;
int i=0;
//dp[0],dp[1]已经填好了,所以dp表可以从i=2位置开始填
//记得i一定要取等于n,因为dp[n]才是到达楼顶的最低费用
for(i=2;i<=n;i++)
{
//状态转移方程,取最近一步到达dp[i]位置的两种途径的最小值
dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
}
//最后返回dp[n]即可
return dp[n];
}
};
这个动态规划的题难就难在分析上,如果能把它分析清楚,代码写起来就几行,如果没有画图分析,就算给你代码真的也不一定能看懂。文章来源:https://www.toymoban.com/news/detail-504435.html
好了,以上就是这道动态规划的解题过程,希望对你有所帮助,如果感觉到有所收获的话,那就点点小心心点点关注呗,后期还会持续更新相关的动态规划的题目哦,我们下期不见不散!!!文章来源地址https://www.toymoban.com/news/detail-504435.html
到了这里,关于力扣 -- 746. 使用最小花费爬楼梯的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!