网站网站平台建设方案,影视投资销售怎么找客户,安徽省公路建设行业协会网站,精通网站建设工资多少钱数组的每个下标作为一个阶梯#xff0c;第 i 个阶梯对应着一个非负数的体力花费值 cost[i]#xff08;下标从 0 开始#xff09;。 每当你爬上一个阶梯你都要花费对应的体力值#xff0c;一旦支付了相应的体力值#xff0c;你就可以选择向上爬一个阶梯或者爬两个阶梯。 请…数组的每个下标作为一个阶梯第 i 个阶梯对应着一个非负数的体力花费值 cost[i]下标从 0 开始。 每当你爬上一个阶梯你都要花费对应的体力值一旦支付了相应的体力值你就可以选择向上爬一个阶梯或者爬两个阶梯。 请你找出达到楼层顶部的最低花费。在开始时你可以选择从下标为 0 或 1 的元素作为初始阶梯。
状态转移方程 dp[i] min(dp[i-1], dp[i-2]) dp[i]; 边界条件 dp[0] cost[0], dp[1] cost[1]
这题总感觉题目描述得不太行cost数组中的最后一个元素并不是最高层而是最高层的下面的一个楼层。同时题目隐含了最高层所需体力值为0这个条件。
算是第一次独立用动态规划方法做出动态规划的题吧第一天就刷到这了暑假继续加油。
class Solution {
public:int minCostClimbingStairs(vectorint cost) {int top cost.size() - 1;int dp[1005] {0};for(int i 0; i top; i)dp[i] cost[i];for(int i 2; i top1; i)dp[i] min(dp[i-1], dp[i-2]) dp[i];return dp[top1];}
};