【发布时间】:2016-08-26 20:42:25
【问题描述】:
python 中从 n 个连续列表中选取多个 n 个连续整数的最有效方法是什么,从每个列表中选取一个整数。这里的 n 相当大..比如说 100 秒左右。
L1 = [5,3,2,7,1]
L2 = [3,5,6,8,9,21,2]
L3 = [5,3,6,7,3,9]
我想从连续列表中打印出连续整数的范围,其中第一个元素是从第一个列表中提取的,第二个元素是从第二个列表中提取的,依此类推:
Candidate solution [5,6,7], [1,2,3], [7,8,9]
【问题讨论】:
-
所以你想要每个列表中最大的连续范围,但不考虑当前的顺序?一个列表中可以有多个等长的范围吗?如果有,如何处理?
-
@ByteCommander 不不不。你完全错了。我不希望每个列表中都有最大的连续范围。我希望从连续列表中提取连续元素,而不是在列表中。希望我说清楚了。
-
啊,所以你有 3 个列表并通过从每个列表中选择一个数字来形成长度为 3 的连续范围?列表的数量总是 3 还是可以变化的?
-
@AKS 我尝试对每个列表进行排序,然后选择每个列表中的每个元素并检查它们是否是连续整数,但最坏的情况复杂度可能是 O(l1*l2*l3),其中 l1,l2 和 l3 是列表 L1,L2,L3 的长度。如果我有 100 个这样的列表,那么性能将会受到影响。
-
@ByteCommander 你做对了。列表的数量可以变化,通常在 100 的范围内。
标签: python algorithm list range continuous