【发布时间】:2016-12-02 22:46:33
【问题描述】:
这是我正在使用的一个简化数据集,涵盖了我的基本触发点。 ID、日期、位置
(1, Jan 1, LA), (2, Jan 2, LA), (3, Jan 2, LA), (4, Jan 2, NY), (5, Jan 3, LA), (6, Jan 5, LA)
我想找到最大的独特组合集,限制在日期范围内,并按位置分组。
所以有了上面的数据和输入
date_range = 3
我的输出(为简单起见是 id)应该是:
1,2,3,5
4,
5,6
因此 1,2,3 的组合不会被包括在内,因为它是 1,2,3,5 的子集
我的第一次尝试是找到所有可能的组合并在之后消除子集。我在这里找不到很好的解决方案。看起来效率真的很低。
第二次尝试是这样的:
Loop through each item
Find largest combination
这似乎效果更好,但仍然会产生重复。例如,它将返回以下内容:
1,2,3,5
2,3,5
3,5
4
5,6
6
我没有需要处理的海量数据集,1000 个项目将是高端,但性能会很明显。也许我过于复杂了,我需要专注于有效地消除子集,而不是一次性完成所有操作?
【问题讨论】:
标签: algorithm combinations subset