1
最大サブマトリックス合計
与えられた n×mn×mn\times m マトリックス AAA整数の場合、合計が最大になる部分行列を見つけます。行または列が1つしかない場合、これは最大のサブ配列を見つけることと同じです。 1Dバージョンは、動的プログラミングによって線形時間で解決できます。2DバージョンはO(n3)O(n3)\cal O(n^3) すべての列のペアをループし、長さが行列の行数である配列に対して1Dアルゴリズムを使用して、各位置で rrr 行の要素の合計を保持します rrr 2つの列の間。 行列が次のように与えられた場合: ⎛⎝⎜15−45−243−1203119−1789⎞⎠⎟(1−20−15433178−45−12199)\begin{pmatrix} 1 & -2 & 0 & -1 \\ 5 & 43 & 31 & 78 \\ -45 & -12 & 19 & 9 \end{pmatrix} 次に、列のペアについて (0,2)(0,2)(0,2)、最大サブマトリックスの合計は、配列で1Dアルゴリズムを使用して見つけることができます(上から下)。 ⎛⎝⎜1−2+05+43+31−45−12+19===−179−38⎞⎠⎟(1−2+0=−15+43+31=79−45−12+19=−38)\begin{pmatrix} 1-2+0 & = & -1 \\ 5+43+31 & = …