目标总额: 15
给出一个数组,找出最大的子集合,其总数小于或等于给定的总数.
为了找到最大的子集,其总和小于或等于目标总和,我们可以使用动态编程方法.首先,我们将集合排序以上升顺序,然后我们创建一个n * m矩阵dp,其中n是集合的大小,m是目标总和 + 1.矩阵中的值表示是否存在一个给定总的子集.然后,我们使用以下规则填写这个矩阵: 1.将第一个列填写真实,因为一个子集总和 0 总是可能的. 2.将第一个行填写真实,如果集合中的第一个元素等于列索引,然后填写错误. 3.对于所有其他细胞,如果集合中的元素小于或等于列索引,即如果目标元素可以是代表集合的总数的一部分,我们可以重复下面的步骤,如果我们填写了下面的部分. 4.如果您的前列包含了 0 的子集,那么我们将把第一个行填写真实. 如果我们从第一个行上移动到第一个组,如下列的最大元素,如下列的第一个组,如下列的第一个组,如下列的第一个组,如下列的第一个组,如下列的第一个组,如下列的第一个组,如下列的第一个组,如下列的第一个组,如下列的组,如下列的组,如下列的组,如下列的组,如下列的组,如下列: 1,第一个组,如下列的组,如下列列列,如下列:第一个组,如下列,如下列,如下列列列列:第一个组,如下列列列列列列列列列,如下列列:第一个组,如下列列列列列列列列列列列列列列列,如下列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列