最大和小于 K 的 10 大小子集

问题描述

问题:

给定一个浮点数组(大小 N

示例(为简单起见使用整数)

输入:

array = [1,2,3,4,5,6,7,8,9,10,11,12,13]
K = 60

输出

subset = [1,13] # sum of 59

我已经尝试在 G4G 上进行搜索,但我没有找到任何可以解释 M = 10 的子集大小的内容。我正在尝试使用 Python 3 解决这个问题,但任何参考或来源都将不胜感激。

解决方法

阅读 the 0-1 knapsack problem 是一个很好的起点:给定一组具有相应值和权重的项目,以及最大权重限额 W,找到权重范围内的最大值项目集津贴 W.

你的问题和这个问题一样,但是所有的物品价值=它们的重量——所以你可以只使用背包问题的解决方案,或者(可能)你可以做一些更省时的利用这个。

祝你好运!