代码随想录
文章平均质量分 89
。。。。。。。。
一直爱莲子
内心充盈者,独行也如众
展开
-
算法刷题-动态规划3(未完待续---------
的一部分物品用来存放物品i带来的价值,哪个更大?(取出多少呢,当然是刚好能放下物品 i 的重量,即w[i]),当物品 i 的重量小于背包的总承重时,我们就要进行对比,前面 i - 1个物品所带来的价值和现在要取出背包中。选择一个个地来装入背包,背包的承重量不断地增加,二维数组中,列为物品i,行为背包的承重量)。当物品 i 的重量大于背包当前的总承重时,该物品不能放入背包;把更大的那个价值对当前背包价值进行更新。(待回顾和复习)美好的一天从每日一题开死。原创 2023-11-27 16:47:52 · 189 阅读 · 0 评论 -
C++语法知识点-vector+子数组
Vector是一个封装了动态大小数组的顺序容器(SequenceContainer)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。二维vector数组vector Arrayname[size];Arrayname[]中的每一个元素都是一个vector。我们可以把二维vector数组当做两个维都可以变长的二维数组来理解。初始化://初始化5个值为0的元素//定义了5个整型元素的向量,且给出每个元素的初值为1//从数组中获得初值。原创 2023-11-23 20:58:16 · 394 阅读 · 0 评论 -
算法刷题-动态规划2
所以得出状态表达式,dp[ i ][ j ] = max( dp[ i ][ j - 1 ],dp[ i - 1 ][ j ] ) + g[ i ][ j ]第一种是从上面来的礼物最大价值:dp[ i ][ j ] = dp[ i - 1 ][ j ] + g[ i ][ j ]第二种是从左面来的礼物最大价值:dp[ i ][ j ] = dp[ i ][ j - 1 ] + g[ i ][ j ]为了简洁代码,多增加一行。多开一行使得代码更加的简洁。原创 2023-11-22 21:08:13 · 425 阅读 · 0 评论 -
算法刷题-动态规划-1
题目中的关系代数是 dp[ i ] = dp[ i - 1 ] + dp[ i - 2 ] + dp[ i - 3。s[ i ] 和 s[ i - 1 ] 一起解码,当 s[ i - 1 ] * 10 + s[ i ] 的值是 10~26 的时候就可以解码,dp[ 1 ] 位置,如果 dp[ 1 ] 能自己解码,就 + 1,如果能跟 dp[ 0 ] 一起解码,就再 + 1,自己解码的方案数就是 dp[ i - 1 ],如果 s[ i ] 的值是 0,那方案数就是0,整体解码失败,原创 2023-11-22 20:02:45 · 364 阅读 · 0 评论