【每日一题】【12.17】746.使用最小花费爬楼梯

2023-12-18 05:51:10

?🔥博客主页:?A_SHOWY
🎥系列专栏力扣刷题总结录?数据结构??云计算??数字图像处理??力扣每日一题_

1.题目链接?

746. 使用最小花费爬楼梯icon-default.png?t=N7T8https://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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。