背包问题

01背包

image.png

优化空间复杂度,变为一维;

外循环依然是n从1->N, 注意内循环 v是从V->0,

为什么内循环是V->0,因为数组里保存的都是上一轮的更新结果,每一个v都依赖于上一个数组的,上方和斜上方的位置,如果从前往后,那么后面的依赖的就不是上一轮的。

一定要注意,其实还应该有限制条件,v-c[i] >= 0


image.png

初始化:
当要求恰好填满的时候,除了f[0], 其他初始化-inf, 因为没有初始认为,没有那么正好的可以填满的值。

当要求不用恰好填满的时候,初始化为全0;

你可能感兴趣的:(背包问题)