在少于O(n ^ 2)的时间内比较两个数组的元素?

时间:2018-03-21 13:36:42

标签: algorithm loops big-o

我有两个整数数组。我需要找出两个数字,每个数组一个,其总和等于2.这在O(n ^ 2)中非常简单,但有没有办法更快地完成它?

1 个答案:

答案 0 :(得分:3)

你可以在O(N + M)时间和O(N)空间中这样做:

  • 将数组a的元素放入哈希集
  • 遍历数组b,并检查哈希表是否包含2-b[i]

构造N元素的哈希集需要O(N)时间和O(N)空间。根据哈希集检查每个M元素需要O(1),总共为O(N + M)时间。