问题描述
我得到一个数组(更确切地说,是一个多重集),比如说 L。现在,我需要告诉从这个集合中形成两个子集(多重集)所需的最小元素数(L),使得两个子集的元素之和至少为 k(给定的整数)。
我想到的基本想法是:最初,我们有两个空数组/集合。首先,将最大的元素添加到其中一个。现在,从第二大开始,我将一个元素添加到具有两者中最小总和的子集中,然后继续直到我在这两个中获得至少 k 的总和。这个解决方案在许多测试用例中都有效,但后来我发现了一个反例,证明这个解决方案是不正确的。反例是: 取 L=[1,2,4,5,6,7,8] 和 k=16。
我知道这个问题在某种程度上是子集求和问题的修改(更好说,高级)版本,但不知道如何做到这一点。有人可以帮忙吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)