python - 大型数据集的变革问题
问题描述
考虑给定的整数列表和给定的目标值。通过循环这个列表,该函数测试列表的任何子集的总和是否等于给定的目标值。
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 行?
解决方案
推荐阅读
- excel - 如何在时间范围内删除行(日期和时间格式,但我只想保留特定时间之间的行)
- angular - 如何在 Angular 6 中使用打字稿显示后备路线?
- json - python json.load 在两个不同的系统上执行不同
- jquery - 在滚动时更改背景颜色
- c - 如何使用 Flex/Bison 求解算术表达式
- python-3.x - 在python中获取给定数字列表中的一对数字的函数
- ruby-on-rails - 使用 Carrierwave 将多张照片上传到 Cloudinary 只会上传一张照片
- gulp - Gulp 加载本地保存的 qunit
- python - 与迭代两个大型 Pandas 数据框相比,效率更高
- json - 意外的输入结束:使用杰克逊解析 Json