与えられた マトリックス 整数の場合、合計が最大になる部分行列を見つけます。行または列が1つしかない場合、これは最大のサブ配列を見つけることと同じです。
1Dバージョンは、動的プログラミングによって線形時間で解決できます。2Dバージョンは すべての列のペアをループし、長さが行列の行数である配列に対して1Dアルゴリズムを使用して、各位置で 行の要素の合計を保持します 2つの列の間。
行列が次のように与えられた場合:
次に、列のペアについて 、最大サブマトリックスの合計は、配列で1Dアルゴリズムを使用して見つけることができます(上から下)。
誰か知っていますか この問題を解決するためのアルゴリズム?
この質問を説明するこのビデオをチェックしてください。youtu.be/yCQN096CwWM