代码随想录算法训练营第四十五天|70. 爬楼梯(进阶)|322. 零钱兑换|279.完全平方数

一、70. 爬楼梯(进阶)

思想:这题很明显是完全背包的题目,并且由于121和211是两种方法,所以是有顺序的。从这两点的话我们可以确定遍历顺序是先背包然后物品,这里比较简单,物品只有两种(1和2)。所以我们只需要写出递归公式即可,由于前面已经做过种类问题,所以我们也有递归公式。最后是初始化,如果dp[0]初始为0,后面都为0,所以这里初始成1.

 

二、322. 零钱兑换

思想:首先看题,硬币是无限的,可以知道是完全背包,又因为155和515是同一种凑钱方式,所以我们可以知道遍历顺序,先物品后背包,最后确定遍历公式,dp[j]是装满背包的最小物品个数,dp[j-i]+1是所有可能,所以我们将它取最小值即可。这里有一个很重要的细节便是初始化,由题可知,dp[0] = [0],但是其它的数怎么初始化,因为以前做过max的题,一般默认为0,所以我第一次做的时候也初始化为0,后面发现不对,因为它是min,如果初始化为0,0会覆盖比其大的值,所以我们需要赋一个很大的值。

 三、279.完全平方数

思想:拿到这题其实发现就是和零钱兑换一样,只不过套了一个新的壳子,整体思路都是一样,这里就说一下自己不确定的点当时自己默认给了dp[0] =0 ,题目也没有给什么信息,但是为了后面递归也只有这样给,个人感觉还是不要太纠结。然后就是对初始的物品进行处理一下,让其里面全部为完全平方数即可。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值