多递增数组子集和求解优化:每组选数匹配目标值
多维子集和查询优化问题探讨
问题背景
- 输入:数量为4的倍数(如4、8、12、16等)的Double类型Amount数组,每个数组内元素为递增1的十进制数值
- 核心需求:从每个数组中选取一个值,使选中值的总和等于指定的TotalAmount,返回与输入数组数量对应的结果集
现有尝试与痛点
- 已尝试的方案:O(n²)复杂度算法、lambda表达式、循环判断逻辑、各类经典子集和算法、动态SQL查询,还研究过Python科学计算库numpy
- 存在的问题:当输入数组数量达到50+的大规模场景时,现有方案的耗时过高,无法满足实际需求
思路探讨
我提出一种交叉切割数组的思路:通过交叉切割实现数组结果的均衡,逐步调整选中值的组合,使组合总和与目标值的差值趋近于0。想探讨该思路是否可有效解决此问题?
示例
匹配目标值为14,输入数组为[1,2,3]、[4,5,6]、[7,8,9]时,正确结果集为:
[[1,4,9],[1,5,8],[2,4,8],[2,5,7],[3,4,7]]
内容的提问来源于stack exchange,提问作者Sunsing
相关产品推荐
相关产品推荐

