在数组中查找公共重复项

时间:2011-08-04 15:53:21

标签: arrays duplicates

我有两个整数数组,没有关于数组中元素范围的信息。我所知道的是两个数组m和n的长度。现在两个阵列都有一些重复。我想从两个数组中找到最低的公共副本。假设我的记忆力有限,我该如何解决?

2 个答案:

答案 0 :(得分:0)

可能是MergeSort算法可以帮助您解决这个问题。 MergeSort算法基本上用于对列表中的元素进行排序,但其主要关键在于其“分而治之法”。正如你所提到的那样,记忆是有限的,因此Divide and Conquer似乎是解决问题的合理方法。

答案 1 :(得分:0)

一种可能的方法(注意!有可能更有效的方法来实现内存和性能)。

  1. 为第一个和第二个数组创建两个map实例A和B. key是整数,value是相应数组中的整数计数。
  2. 计算两个数组中每个整数的出现次数,并相应地将它们存储在地图A和B中
  3. 删除A和B
  4. 中值小于2的(key,value)
  5. 取A和B的键集并找到交点。
  6. 找到交叉点中的最低键,这是答案