本文主要是介绍LintCode 563. 背包问题 V Python算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述
给出 n 个物品, 以及一个数组, nums[i] 代表第i个物品的大小, 保证大小均为正数, 正整数 target 表示背包的大小, 找到能填满背包的方案数。
每一个物品只能使用一次
样例
给出候选物品集合 [1,2,3,3,7] 以及 target 7结果的集合为:
[7]
[1,3,3]返回 2
解析
class Solution:def backPackV(self, nums, target):# write your code heredp = [0 for j in range(target+1)]dp[0] = 1for i in range(0, len(nums)):for j in reversed(range(nums[i], target+1)):dp[j] += dp[j - nums[i]]return dp[-1]
运行结果
这篇关于LintCode 563. 背包问题 V Python算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!