3

MxN マトリックスを指定すると、最大の合計数を持つ (連続した) サブマトリックスを見つけるプログラムを Java で作成しようとしています。次に、プログラムは部分行列の左上隅の座標と右下隅の座標を返す必要があります。行列には負の数を含めることができ、行列と部分行列の両方が正方形である必要はありません。

これがここで議論されているのを見ました:最大合計で部分行列を取得しますか? そして解決策はO(n ^ 3)のようです。私の友人は、かつてこの問題を O(n^2) で解くことができたと言っていました。ここでも提案それは可能ですか?

この問題を最も効率的に解決できるコードはありますか?

4

2 に答える 2

7

O(n^2)少なくともそのようなアルゴリズムは知られていません。最適なソリューションにはサブキュービックな複雑さがありますが、実装が非常に難しく、実際にはおそらく遅くなります。ここでそれに関する論文を読むことができます。

使用される通常のアルゴリズムは、O(n^3)見つけた質問で参照されているものです。

于 2010-06-25T07:04:29.087 に答える
4

(S)彼はあなたの友達です..だから彼/彼女に尋ねて、私たちにも共有してください:)

于 2010-06-25T09:48:08.190 に答える