【每日一题】【12.17】746.使用最小花费爬楼梯
2023-12-18 05:51:10
?🔥博客主页:?A_SHOWY
🎥系列专栏:力扣刷题总结录?数据结构??云计算??数字图像处理??力扣每日一题_
1.题目链接?
746. 使用最小花费爬楼梯https://leetcode.cn/problems/min-cost-climbing-stairs/
2.题目详情?
今天的每日一题又是一道easy题目,是一道简单dp题目,思路比较简单,难点在于语文理解题意。
?
?3.题目分析解答
,
这道题目的题目描述不是很好,可以按照以下理解,在首和尾部都加一个0,分别代表地面和楼顶,数组的每一个数字代表从当前楼梯迈出所需要的体力,从地面开始,第一步可以选择第0阶或第一,都不消耗体力,最终要求到达一个0(楼顶)消耗的体力最少。?再看上图,这个题目就很好理解了。经典的简单动态规划
有几个需要注意的点:定义dp长度为n+1,因为终点也算一阶楼梯,所以dp数组应该是length+1个元素长,最后返回length位置的值。
4.整体完整代码:
class Solution {
public:
int minCostClimbingStairs(vector<int>& cost) {
//动态规划,设置dp为到达下标i的最小花费
int n = cost.size();
vector<int> dp(n+1);//终点也算一阶楼梯,所以dp数组应该是length+1个元素长,最后返回length位置的值
dp[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];
}
};
?5.打卡记录
?(16号丢了一天,太忙了最近补上)
文章来源:https://blog.csdn.net/showy0/article/details/135053052
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!