leetcode 动态规划(基础版) 使用最小花费爬楼梯

题目:

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。

你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。

请你计算并返回达到楼梯顶部的最低花费。

题解:

本题开始真正使用动态规划的知识了,本人也是初次入门,只是即兴写下所学所感,在这过程中可能有出错的地方,欢迎大家一起讨论。

每一次爬楼梯不再像之前爬楼梯那样单纯递推就可求出,而是要在递推的基础上满足整体最优解。

每一次的更新策略是走到本层楼梯应该是从上一步和上两步中花费最少的走上来的。即:

dpi=min(dpi-1+costi-1,dpi-2+costi-2);

cpp 复制代码
int minCostClimbingStairs(vector<int>& cost) {
        vector<int>dp(cost.size()+1,0);
        for(int i=2;i<=cost.size();i++){
            dp[i]=min(dp[i-1]+cost[i-1],dp[i-2]+cost[i-2]);
        }
        return dp[cost.size()];
    }

写出这道题后让我心里对动态规划和贪心做了个对比,目前得出的结论是:

贪心:在实现每一层时,按一个策略从多个选法中选择最优的,通过局部最优达到整体最优。

动态规划:先把到本层的所有策略都做一遍,然后再从中选择最优的,通过小整体最优得到大整体最优解。

相关推荐
小羊在睡觉2 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
3DVisionary3 小时前
蓝光三维扫描:医疗制造的精度焦虑怎么解
人工智能·算法·制造·蓝光三维扫描·医疗制造·三维检测·义齿检测
好评笔记3 小时前
机器学习面试八股——常用损失函数
人工智能·深度学习·算法·机器学习·校招
weixin_468466853 小时前
全局与局部注意力机制新手实战指南
人工智能·python·深度学习·算法·自然语言处理·transformer·注意力机制
sheeta19983 小时前
LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素
笔记·leetcode
_日拱一卒3 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
珂朵莉MM4 小时前
第七届全球校园人工智能算法精英大赛-算法巅峰赛产业命题赛第3赛季优化题--束搜索
人工智能·算法
Omics Pro5 小时前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
voidmort5 小时前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域5 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法