【发布时间】:2013-06-03 18:15:08
【问题描述】:
我有一个 3D 数组。在这个数组中,我想找到可以组合成更大元素的元素。矩形不能相互重叠。我最好先找到最大的矩形,但先到先得也不会错,尤其是如果这样可以提高性能。
例如
1 0 0 0 1
0 0 0 0 0
0 0 0 0 1
1 1 0 0 1
将产生(因为 3x3 是可以找到的最大矩形;位置 1, 0 到 3, 2 - zerobased):
0 0 0
0 0 0
0 0 0
和(因为 1x2 是可以找到的下一个最大矩形;位置 0、1 到 0、2):
0
0
和(因为 2x1 是可以找到的下一个最大矩形;位置 2、3 到 3、3):
0 0
当然还有(左边是位置 4, 1;不是更大但仍需要使用)
0
作为更大的元素(我只需要知道零或一)。目的是减少体素网格的对撞机数量。
我不知道这种算法的名称,也许我可以找到自己如何做到这一点。
如果有人可以为此提供一些可行的信息,那就太好了!
【问题讨论】:
-
您可能正在寻找“区域增长算法”。
-
您能说得更具体一点吗?
-
好的,我会尝试添加一些额外的信息。
-
是的,我认为您需要提供更多信息,例如,在您的情况下,为什么它不会产生 2*4 '0'(第 1-2 行,第 0-3 列) ?
-
我添加了额外的信息;如果不清楚,请告诉。
标签: algorithm