首页 > 其他分享 >使用最小花费爬楼梯 动态规划初理解

使用最小花费爬楼梯 动态规划初理解

时间:2024-01-19 22:24:01浏览次数:25  
标签:sz 爬楼梯 花费 最小 int cost 数组 return dp


该题是动态规划入门程度,但最开始做的时候还是无从下手。
我觉得卡哥给的步骤很重要:
确定dp数组(dp table)以及下标的含义
确定递推公式
dp数组如何初始化
确定遍历顺序
举例推导dp数组

首先明确dp数组(dp table)以及下标的含义很重要,最开始做这道题的时候,设了dp但不知道是代表什么。
一般题目就假设dp[sz]为最终结果,因此可以间接懂得dp[i]就是到i层的花费。
知道这一步就可以推得递归函数了。

完整代码:

点击查看代码
class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
int sz=cost.size();
if(sz==0){return 0;}
if(sz==1){return cost[0];}
vector<int>dp(sz+1);
dp[0]=0;
dp[1]=0;
for(int i=2;i<=sz;i++){
    int num1=dp[i-1]+cost[i-1];
    int num2=dp[i-2]+cost[i-2];
    dp[i]=min(num1,num2);
}
return dp[sz];
    }
};

标签:sz,爬楼梯,花费,最小,int,cost,数组,return,dp
From: https://www.cnblogs.com/yun-che/p/17975748

相关文章

  • CF-720-E- 最短路+最小生成树
    1051-F题目大意给定一个\(n\)个点\(m\)条边的无向联通图,边带权。有\(q\)次询问,每次询问两点\(x,y\)直接的最短路的长度。Solution注意到\(m-n{\le}20\),那么整个图可以视为一个生成树加上不超过\(21\)条非树边构成的图,这些非树边构成一个边集\(E\)。先把整个图的最小生成树搞......
  • m基于码率兼容打孔LDPC码ms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译码算法进行迭代译码,提高了......
  • m基于码率兼容打孔LDPC码ms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation......
  • 代码随想录 day21 二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先
    二叉搜索树的最小绝对差二叉搜索树就是有序数组那么转换一下就很简单了也可以直接在遍历二叉搜索树的时候进行比较需要一个指针记录前一个节点二叉搜索树中的众数既可以把这题的二叉搜索树当成一般树来做这样就是层序遍历树然后用map记录频率再取频率最高的值这里用......
  • MST(最小生成树)学习感悟
    MST(最小生成树)学习感悟MST,最小生成树,一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。——百度百科对于最小生成树,有几个比较常见的性质:对于任意最小生成树,它包含所有的n个节点以及n-1条边。若边权都不相......
  • 433. 最小基因变化(Queue使用ArrayList和LinkedList进行声明)
    这道题可以看成一个24叉树。因为基因序列长度固定为8,且每个位置的字母固定是AGCT,可以选择改变的只有3个字母,所以一次最多24种情况。然后检查变化后的结果是否存在bank中(使用hashSet来存储),同时设置一个visited集合来检查是否访问过。classSolution{publicintminMutation(St......
  • python Y轴最小刻度
    Python中Y轴最小刻度在数据可视化中,Y轴最小刻度是很重要的一个概念。它代表了Y轴的起始点,通常用于确定绘图中的最小值。在Python中,我们可以使用不同的库来创建图表,并设置Y轴的最小刻度。matplotlib库matplotlib是一个流行的Python数据可视化库,可以用来创建各种类型的图表,包括饼......
  • 70、爬楼梯
    动态规划问题:通过把原问题分解成相对简单的子问题的方式来解决复杂问题的方法,体现了以空间换时间的算法思想,这也是其与分治法最大的区别。动态规划解题思路和方法:求解动态规划问题的思路是定义状态并写出状态转移方程,然后可以采用自顶向下的递归+备忘录方法或者自底向上的填写状......
  • 05-K8 Pod:最小调度单元的使用进阶及实践
    通过上一节课的学习,相信你已经知道了Pod是Kubernetes中原子化的部署单元,它可以包含一个或多个容器,而且容器之间可以共享网络、存储资源。在日常使用过程中,也应该尽量避免在一个Pod内运行多个不相关的容器,具体原因在上一节课中也已经详细阐述。在实际生产使用的过程中,通过k......
  • 【史上最小白】Bert 分析类大模型:双向 Transformer 编码器
    Bert:双向Transformer编码器Bert:论洞察语境,GPT不如我深刻;论理解含义,ELMo不如我全面输入阶段词嵌入:把词语转换为向量第一个预训练Masked:学习语言的深层次理解尝试1:预测每个单词尝试2:Masked语言模型尝试3:用随机单词替换部分遮住的单词尝试4:结合遮盖、随机替换和不变的单词......