私は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 番目に大きな長方形であるため、位置 2, 3 から 3, 3 へ):
0 0
そしてもちろん (左は位置 4, 1 です。これは大きくはありませんが、まだ使用する必要があります)
0
より大きな要素として(ゼロまたは1についてのみ知る必要があります)。目的は、ボクセルグリッドのコライダーの量を減らすことです。
そのようなアルゴリズムの名前はわかりませんが、その方法を自分で見つけることができるかもしれません。
誰かがこれに関する実行可能な情報を私に提供できれば、それは素晴らしいことです!