【问题标题】:Compare Arrays to find all matching subArrays比较数组以查找所有匹配的子数组
【发布时间】:2013-11-06 07:34:26
【问题描述】:

我想比较两个数字数组(不重复),以找到两个原始数组中出现的所有长度为 2 及以上的子数组。

我正在寻找最有效的方法来实现这一点。

【问题讨论】:

  • 字符串有多大,可能的字符范围有多大?
  • @RBarryYoung 字符串的长度可以达到 1,000,000,并且它们具有唯一的字符,因此字符就是这样长。
  • @Babibu 我不确定您如何拥有 1,000,000 个唯一字符。我认为 char 是指单个字母或数字或特殊字符(例如 '&' '$' '~' ..)
  • @Roman tnx,问题已编辑

标签: string algorithm search comparison substring


【解决方案1】:

这让我想起了Longest Common Substring Problem 阅读 wiki 页面,它有很好的问题描述、很好的参考甚至是伪代码。 有两种解决方法:后缀树和动态规划。 后缀树似乎是一种更有效的解决方案,但它可能更复杂,具体取决于您的实现。

如果您不熟悉Dynamic Programming,请继续阅读。 您的问题和最长公共子字符串之间的唯一区别是您有一个唯一整数数组,而这里它们在字符串中有重复字符。

您可能会利用它来发挥自己的优势,但我认为您不会获得重大的效率提升。

【讨论】:

    猜你喜欢
    • 2019-12-06
    • 2012-03-27
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多