本文主要是介绍代码随想录冲冲冲 Day38 动态规划Part6,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
322. 零钱兑换
最大最小值的问题 这样的问题不需要考虑遍历顺序
但是这道题需要注意的是红线的两个部分
这两个部分的意思是一样的 首先dp[j]代表的是amount为j的时候 最小的硬币数量
如果说任何的dp[j]为INT_MAX也就是初始值,这就说明这哥mount的数量没有得到或者得不到
那么就不能继续更新了加入j =5 有可能 j=4根本得不到 那么由dp[4] +1就不合理了 需要看类似与dp[3] +1可不可以得到
279. 完全平方数
完全背包且组合 所以先物品后背包
其他组合的情况 只要背包容量从cost[i]开始就可以了 但是这道题并不知道cost[i]
所以背包容量就要从0开始
这是就要多一个 j -i*i的判断,如果说小于0就说明空间比cost要小了 那就不用考虑了
139. 单词拆分
dp[j]表示s的单词 从0-j可不可以有dic拼成
那么关系其实就是如果说dp[i]可以拼成 + i~j这一段可以拼成 那么就可以拼成
对于每一个背包空间(单词的长度)来说
去看dp[j]也就是看前i个dp[i]与[i,j]是否满足条件 如果都满足
那么dp[j]也满足
这篇关于代码随想录冲冲冲 Day38 动态规划Part6的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!