【问题标题】:Maximum two-dimensional subset-sum最大二维子集和
【发布时间】:2011-01-25 18:41:18
【问题描述】:

我的任务是编写一个算法来计算整数矩阵的最大二维子集。 - 但是我对这种算法的帮助不感兴趣,我更感兴趣的是了解可能解决这个问题的最坏情况的复杂性。

我们当前的算法是 O(n^3)。

我一直在考虑类似分而治之的事情,将矩阵拆分为多个子矩阵,只需将矩阵中的元素相加即可;从而限制了为了找到近似解而必须考虑的矩阵的数量。

【问题讨论】:

  • 那将是矩阵本身,对吗? ;)
  • 什么? - 不确定我明白你的意思,真的不取决于矩阵中是否有负数吗?
  • 啊,好点。你确实说整数不是非负整数。 ;) 所以你正在寻找矩阵中的数字子矩形,使得该矩形中的数字之和是所有可能矩形中的最大值?
  • 是的,或者更可能我正在寻找最适合它的算法的复杂性

标签: complexity-theory time-complexity subset subset-sum


【解决方案1】:

最坏情况(穷举搜索)绝对不会更糟比 O(n^3)。网上对此有多种描述。

最好的情况会好得多:O(1)。如果所有元素都是非负的,那么答案就是矩阵本身。如果元素是非正数,则答案是其值最接近于零的元素。

同样,如果矩阵边缘的整行/列都是非正整数,则可以在搜索中将其删除。

【讨论】:

    【解决方案2】:

    我认为没有更好的方法可以做到这一点。 - 至少人类还不知道。 我会坚持我得到的解决方案,主要是因为它很简单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2017-08-08
      • 2012-11-29
      • 2017-02-17
      • 2010-12-30
      相关资源
      最近更新 更多