前言
LeetCode题目:LeetCode 518、377
Takeaway:背包问题——完全背包问题,内外循环的顺序很重要,决定了是求排列还是求组合。
外物品内重量:组合(因为1号物品肯定在2号之前);
外重量内物品:排列(1号物品可以在2号之后,不一定);
一、518
完全背包问题——求组合,DP数组含义是:凑成DP[j]有多少种方法;由于是求组合,外层应该是物品,内层才是重量。
class Solution {
public:
int change(int amount, vector<int>& coins) {
//初始化DP数组,DP含义是:凑成DP[j]有多少种方法
vector<int> dp(amount + 1, 0);
dp[0]