A
Affe Hornmann
Gast
Moin,
Bei mir klemmt's gerade an folgendem Problem:
Ich habe ein langes int-Array - ein Beispiel ist unten.
Nun suche ich eine Möglichkeit, den Bereich (oder die Mitte des Bereichs) im Array zu finden, in dem die Zahlenfolge >0 mit der größten Summe liegt.
Im Beispiel will ich also den Bereich "1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 3 3 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 1 1" finden.
Wenn ich es heuristisch über ein reines Maximum versuche, erhalte ich zu viele falsche Ergebnisse - im Beispiel wäre das ja die "4".
Idealerweise sollte der Ansatz auf O(n) optimierbar sein, während ich das Array berechne. (Das ist auch der Punkt an dem es wirklich hakt)
Viel Spaß
,
Affe
Bei mir klemmt's gerade an folgendem Problem:
Ich habe ein langes int-Array - ein Beispiel ist unten.
Nun suche ich eine Möglichkeit, den Bereich (oder die Mitte des Bereichs) im Array zu finden, in dem die Zahlenfolge >0 mit der größten Summe liegt.
Code:
0 0 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 1 0 1 0 1 1 1 0
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 3 3 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1
2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 0
0 0 0 1 1 1 1 0 0 1 0 0 0 1 2 1 1 1 0 1 1 2 1 1 2 2 2 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
Im Beispiel will ich also den Bereich "1 1 1 1 1 1 1 2 2 1 2 1 1 1 1 1 1 1 1 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 3 3 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 2 1 1 1 2 2 1 2 1 2 2 2 2 2 2 2 1 2 2 2 1 1" finden.
Wenn ich es heuristisch über ein reines Maximum versuche, erhalte ich zu viele falsche Ergebnisse - im Beispiel wäre das ja die "4".
Idealerweise sollte der Ansatz auf O(n) optimierbar sein, während ich das Array berechne. (Das ist auch der Punkt an dem es wirklich hakt)
Viel Spaß
Affe