文章链接: 完全背包、 518. 零钱兑换 II、 377. 组合总和 Ⅳ、 70. 爬楼梯 (进阶)
视频链接: 完全背包、 518. 零钱兑换 II、 377. 组合总和 Ⅳ
题目链接: 完全背包、 518. 零钱兑换 II、 377. 组合总和 Ⅳ、 70. 爬楼梯 (进阶)
完全背包
题目:
有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。
与01背包的区别:
每种物品有无数件。
注意:
完全背包的物品是可以添加多次的,所以要从小到大去遍历(01背包的遍历顺序是倒序遍历)。
518.零钱兑换 II
思路:
区别:该题是正序遍历。
注意:
如果求组合数就是外层for循环遍历物品,内层for遍历背包。
如果求排列数就是外层for遍历背包,内层for循环遍历物品。
377.组合总和 Ⅳ
思路:
与上题有区别:上题返回的是 组合 的个数(即顺序不同,无关结果);该题返回的是 排列 的个数。
如果求组合数就是外层for循环遍历物品,内层for遍历背包。
如果求排列数就是外层for遍历背包,内层for循环遍历物品。
70.爬楼梯 (进阶)
思路:
转换成背包问题:物品数组为一次可以爬的阶数,背包容量为走的台阶数,结果就是方法数。