【问题标题】:Most efficient algorithm to determine if array2 is a sub-array of array1?确定array2是否是array1的子数组的最有效算法?
【发布时间】:2011-11-28 02:54:49
【问题描述】:

确定array2 是否是array1 的“子数组”的最有效算法是什么? (对于 array1 = [9,9,10,4] 和 array2 = [9, 10] 为真)

不依赖于特定语言的实用程序进行数组比较,最便宜的平均和最坏情况解决方案是什么?似乎排序和二分查找只会得到否定的情况。

【问题讨论】:

  • array2 的元素必须是结果吗? array3=[9,4] 是否也是 array1 的子数组?
  • 元素必须是必然的。 [9,4] 不会是 array1 的子数组。

标签: arrays algorithm data-structures


【解决方案1】:

这基本上是关于精确文本匹配算法,所以我们应该至少比较Boyer-MooreKMPRabin-Karp 字符串搜索算法。

幸运的是,答案已经是on this Wikpedia page,它比较了几种字符串搜索算法的复杂性(平均/最差情况)。

【讨论】:

    【解决方案2】:

    我认为您可以简单地对两个数组进行排序并逐个整数进行比较。给出一个 O(nlogn) 解

    【讨论】:

      猜你喜欢
      • 2016-09-14
      • 2021-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      相关资源
      最近更新 更多