背包问题大致的描述是什么:
给你一个可装载重量为
W
的背包和N
个物品,每个物品有重量和价值两个属性。其中第i
个物品的重量为wt[i]
,价值为val[i]
,现在让你用这个背包装物品,最多能装的价值是多少?那么对于这个问题,我们可以先对集合求和,得出
sum
,把问题转化为背包问题:给一个可装载重量为
sum / 2
的背包和N
个物品,每个物品的重量为**nums[i]
。现在让你装物品,是否存在一种装法,能够恰好将背包装满?
1 | public boolean canPartition(int[] nums) { |