一尘不染

判断两个数组是否具有相同成员的算法

algorithm

比较两个数组以查看它们是否具有相同成员的最佳算法是什么?

假设没有重复项,成员可以按任何顺序排列,并且都不排序。

compare(
    [a, b, c, d],
    [b, a, d, c]
) ==> true

compare(
    [a, b, e],
    [a, b, c]
) ==> false

compare(
    [a, b, c],
    [a, b]
) ==> false

阅读 358

收藏
2020-07-28

共1个答案

一尘不染

显而易见的答案是:

  1. 对两个列表进行排序,然后检查每个元素是否相同
  2. 将一个数组中的项目添加到哈希表中,然后遍历另一个数组,检查每个项目是否在哈希表中
  3. nickf的迭代搜索算法

您将使用哪一个取决于您是否可以首先对列表进行排序,以及您是否拥有良好的哈希算法。

2020-07-28