我在 .txt 文件中有一大组 (S) 长无符号整数。如何找到具有以下属性的 S 的最大子集 (Pmax):
P{X1,X2,X3,...,Xn) | X1>=(Xn/4)
更多细节:
- 当我说最大子集时,我的意思是元素数量最多的子集(n->max)。
- 由于内存有限,我无法将 .txt 加载到数组中。
- 我的系统内存是200MB
- txt 文件有 10^6 个整数。每个整数可以是长无符号 32 位。
- 我需要找到具有以下条件的 S 的最大子集:
X1 < X2 < X3 < ... < Xn-1 < Xn 如 X1 >= (XN/4)
例如,如果 txt 文件具有以下内容:15,14,13,4,2,2,3,10,1,2,2 那么这些是可能的子集:
P1(4,10,13,14,15)
P2(3,4,10)
P3(1,2,2,2,2,3,4)
所以 Pmax(1,2,2,2,2,3,4) 因为它有更多的元素。
事实上,我不想确切地找到哪个是 Pmax。我只想找到子集 Pmax 的元素数。所以这里是7。
该算法应该非常快。
我不找人来做我的工作。我只需要一个相应的问题,这样我就可以寻找有效的解决方案。提前致谢!!!