【问题标题】:Linear time algorithm to compute cartesian product计算笛卡尔积的线性时间算法
【发布时间】:2013-02-26 00:15:50
【问题描述】:

我在一次采访中被要求为笛卡尔积提出一个线性时间的解决方案。我做了迭代方式 O(mn) 和递归解决方案也是 O(mn)。但我无法进一步降低复杂性。有没有人知道如何改善这种复杂性?也有人可以提出一种有效的递归方法吗?

【问题讨论】:

  • mn结果;您要做的最少工作是将每个结果写入输出。所以你不能比O(mn)做得更好。
  • 没有。笛卡尔积给出了可以由 2 个集合组成的所有可能对,因此不可能进一步减少它。
  • 也许你的面试官正在考虑使用量子计算机
  • 解雇面试官!
  • @gnibbler:我不知道你是不是开玩笑,但我很确定量子计算机不能做得更好

标签: python algorithm cartesian-product


【解决方案1】:

mn结果;您要做的最少工作是将每个结果写入输出。所以你不能比O(mn)做得更好。

【讨论】:

    【解决方案2】:

    读到这里,我想到的问题是,“关于什么是线性的?”请记住,在数学中,所有变量都必须定义为有意义。 Big-O 表示法也不例外。如果没有定义 n,简单地说算法是 O(n) 是没有意义的。

    假设这个问题是有意义的,而不是一个错误,我猜他们希望你要求澄清。另一种可能性是,他们想看看你在遇到不可能的情况时会如何反应。

    【讨论】:

      猜你喜欢
      • 2011-03-24
      • 2017-03-07
      • 2013-04-20
      • 2021-11-19
      • 2015-10-21
      • 2021-02-17
      • 1970-01-01
      • 2011-01-26
      • 2015-05-14
      相关资源
      最近更新 更多