对于面试的话,掌握01背包、完全背包,就够用了,最多可以再来一个多重背包。
至于背包九讲其他背包,面试几乎不会问,都是竞赛级别的了,leetcode上连多重背包的题目都没有,所以题库也告诉我们,01背包和完全背包就够用了。
而完全背包又是也是01背包稍作变化而来,即:完全背包的物品数量是无限的。
所以背包问题的理论基础重中之重是01背包,一定要理解透!
leetcode上没有纯01背包的问题,都是01背包应用方面的题目,也就是需要转化为01背包问题。
01 背包
有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。
举一个例子:
背包最大重量为4。
物品为:
问背包能背的物品最大价值是多少?
以下讲解和图示中出现的数字都是以这个例子为例。
没有做卡码网的题,直接看算法,刷题再刷后面的力扣。
代码随想录 (programmercarl.com)