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

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

1.题目链接 

746. 使用最小花费爬楼梯icon-default.png?t=N7T8https://leetcode.cn/problems/min-cost-climbing-stairs/

2.题目详情 

今天的每日一题又是一道easy题目,是一道简单dp题目,思路比较简单,难点在于语文理解题意。

【每日一题】【12.17】746.使用最小花费爬楼梯_第1张图片 

 3.题目分析解答

【每日一题】【12.17】746.使用最小花费爬楼梯_第2张图片

这道题目的题目描述不是很好,可以按照以下理解,在首和尾部都加一个0,分别代表地面和楼顶,数组的每一个数字代表从当前楼梯迈出所需要的体力,从地面开始,第一步可以选择第0阶或第一,都不消耗体力,最终要求到达一个0(楼顶)消耗的体力最少。 再看上图,这个题目就很好理解了。经典的简单动态规划

有几个需要注意的点:定义dp长度为n+1,因为终点也算一阶楼梯,所以dp数组应该是length+1个元素长,最后返回length位置的值。

4.整体完整代码:

class Solution {
public:
    int minCostClimbingStairs(vector& cost) {
//动态规划,设置dp为到达下标i的最小花费
int n = cost.size();
vector 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.打卡记录

【每日一题】【12.17】746.使用最小花费爬楼梯_第3张图片 (16号丢了一天,太忙了最近补上)

你可能感兴趣的:(力扣每日一题,算法,数据结构,leetcode,c++)