質問: square(sq[5][6]); } そこからどうすればいいですか?
回答: nを2d配列のセルの量とします。すべての最大の空の長方形をリストする非常に効率的なアルゴリズムが存在します。最大の空の四角形はこれらの空の四角形の1つ内にあり、最大の空の四角形のリストが計算されると、それを見つけるのは簡単です。このようなリストを作成するためのo(n)アルゴリズムを提示する論文は www.ulg.ac.be/telecom/rectangles とソースコードで見つけることができます(最適化されていません。)最大の空の四角形の数がnで囲まれているという証明が存在することに注意してください(論文を参照)。したがって、最大の空の四角形の選択はo(n)で行うことができ、全体的な方法もoです。 (n)実際には、この方法は非常に高速です。コード全体がcの40行を超えてはならないため、実装は非常に簡単です(すべての最大の空の四角形をリストするアルゴリズムは、cの約30行かかります) )。