如何和大量的数字数组?

yeg*_*256 6 java design-patterns data-structures

我有200个排序正整数数组(其中一些有超过一百万个数字).我需要找到每个数组中存在的第一个数字.你会建议什么?

Sjo*_*erd 3

  • 在每个数组上保留一个索引。
  • 从第一个数组的第一个数字开始作为参考。
  • 如果第 n 个数组的第一个数字低于引用,则增加其索引。
  • 如果第 n 个数组的第一个数字等于引用,则增加 n 并继续 - 下一个数组。
  • 如果第 n 个数组的第一个数字高于参考值,则使用该数字作为参考并重新开始。
  • 如果 n == 201,则您的引用存在于每个数组中。

编辑:代码示例:

while n < len(data):
    item = data[n][indices[n]]
    if item < reference:
        indices[n] += 1
    elif item == reference:
        n += 1
    elif item > reference:
        reference = item
        n = 0

print reference
Run Code Online (Sandbox Code Playgroud)