物品数目为1,一定承载能力的背包最多装多少kg?
1 | static int max; |
物品数目为1,装满背包最少需要几件物品?
1 | static int min = Integer.MAX_VALUE; |
物品数目不限,一定承载能力的背包最多装多少kg?
1 | static int max = Integer.MIN_VALUE; |
物品数目不限,一定承载能力的背包装满需要最少物品的数量?
1 | static int min = Integer.MAX_VALUE; |
物品数目不限,装满背包有多少方案?
1 | static int sum; |
Tips:
- 01背包,回溯方法都相对简单,对于是否可以重复拿区别只在回溯时候i是否加1
- 01背包 优先采用dp,一般地将物品的重量作为行,0~背包重量作为列
- dp解法中,如果求最小值一般用int[][],求最大值一般用boolean[][]
- 想不清楚的时候,先画图去递推
- 优雅简洁的代码,写起来也很顺手,思路也比较清楚