首页 > 解决方案 > 大型数据集的变革问题

问题描述

考虑给定的整数列表和给定的目标值。通过循环这个列表,该函数测试列表的任何子集的总和是否等于给定的目标值。

Input: 
IntegerList = [1, 3, 4, 6, 11, 33, 12]
TargetValue = 13

Output: 
[3, 4, 6] 

在这种情况下,函数的输出为 [3, 4, 6],因为这些值等于 13。

对于所谓的变革问题,存在许多使用 Python 的解决方案。请参阅此处此处此处的示例。但是,这些解决方案无法处理我目前的列表,该列表大约有 8,000 行长。它返回以下错误:

RecursionError: maximum recursion depth exceeded in comparison

我当前的递归深度是 3,000。我试图增加递归深度并导致内核崩溃——其他地方的人认为这无论如何都是不明智的。

如何在我的代码中最大化性能以处理更大的列表,例如 8,000 甚至 80,000 行?

标签: pythonloopsdata-analysis

解决方案


推荐阅读