常见的背包问题有
dp[i] += dp[i-num]
dp[i] = dp[i] or dp[i-num]
dp[i] = min(dp[i], dp[i-num]+1)或者dp[i] = max(dp[i], dp[i-num]+1)
以上三组公式是解决对应问题的核心公式。
背包问题具备的特征:给定一个target,target可以是数字也可以是字符串,再给定一个数组nums,nums中装的可能是数字,也可能是字符串,问:能否使用nums中的元素做各种排列组合得到target。
for num in nums:
for i in range(target, nums-1, -1):
for num in nums:
for i in range(nums, target+1):
for i in range(1, target+1):
for num in nums:
原文:https://www.cnblogs.com/tensorzhang/p/14698627.html