代码随想录算法训练营第三十七天-动态规划-完全背包-理论基础

  • 完全背包与01背包根本区别就是物品的数量
    • 完全背包,物品的数量是无限的,可以任意取多个
    • 01背包物品的数量则只有一个
  • 遍历顺序
    • 01背包的一维滚动数组必须要从后向前遍历,这是防止一个物品被多次加入背包中
    • 而完全背包就是要多次加入物品,所以遍历自然而然就变成正序遍历了
for (int j = weight[i]; j <= capacityOfCurrentBag; ++j)
  • 因为是二层遍历,且这两层遍历可以交换
    • 可以交换的本质原因在于,数组当前值是由前面元素的值推导而来的
  • 汇总

你可能感兴趣的:(算法,动态规划,c++,leetcode)