硬件产品销售方案
问题描述
某公司目前推出了AI开发者套件,AI加速卡,AI加速模块,AI服务器,智能边缘多种硬件产品,每种产品包含若干个型号。
现某合作厂商要采购金额为amount元的硬件产品搭建自己的AI基座。
例如当前库存有N种产品,每种产品的库存量充足,给定每种产品的价格,记为price(不存在价格相同的产品型号)。
请为合作厂商列出所有可能的产品组合。
输入描述
输入包含采购金额amount和产品价格列表price。第一行为amount,第二行为price,例如:
500
[100, 200, 300, 500]
输出描述
输出为组合列表。例如:
[[100, 100, 100, 100, 100], [100, 100, 100, 200], [100, 100, 300], [100, 200, 200], [200, 300], [500]]
补充说明
- 对于给定输入,产品组合少于150种。输出的组合为一个数组,数组的元素也是一个数组,表示一种组合方案。如果给定产品无法组合金额为
amount
元的方案,则返回空列表。 - 两种组合方案,只要存在一种产品的数量不同,那么方案认为是不同的。
- 每种产品型号价格不同。
- 1 <= 产品类型数量 <= 30
- 100 <= 产品价格 <= 20000
- 100 <= 采购金额 <= 20000
示例
示例1
输入
500
[100, 200, 300, 500, 500]
输出
[[100, 100, 100, 100, 100], [100, 100, 100, 200], [100, 100, 300], [100, 200, 200], [200, 300], [500], [500]]
示例2
输入
100
[100]
输出
[[100]]
解题思路
使用回溯算法遍历结果
代码示例