Schnellster Weg, den maximalen Summenbereich in int zu finden []

Ich habe einen Algorithmus optimiert und bin zum letzten Teil gekommen. Ich habe eine Reihe von ganzen Zahlen wie folgt:

[1, 1, 2, 5, 0, 5, 3, 1, 1]

Meine Anforderungen sind wie folgt:

Eingabe: Anzahl der Ganzzahlen, die summiert werden sollenDie maximale Summe sollte aus ganzen Zahlen nebeneinander bestehenWenn eine Ganzzahl den Wert 0 hat, ist die Summe im Bereich ungültigDie maximale Summe von Ganzzahlen und der Index jeder Ganzzahl werden zurückgegeben

Erwartete Ergebnisse:

Bei einer gegebenen Eingabe von 2 (2 gesucht) mit dem Array wie erwähnt sollte daher [8, [5, 6]] zurückgegeben werden, wobei 8 die Summe der ganzen Zahlen bei Index 5 und 6 ist

Bei einer gegebenen Eingabe von 3 (3 gesucht) mit dem Array, wie erwähnt, sollte daher [9, [5, 6, 7]] zurückgegeben werden, wobei 9 die Summe der Ganzzahlen bei Index 5, 6 und 7 ist (beachten Sie, dass obwohl Ganzzahlen bei Index 3 sind , 4, 5 haben eine höhere Summe, das Ergebnis ist ungültig, weil der Index 4 0 ist.)

Ich schaffe das derzeit mit viel Looping, habe mich aber gefragt, ob jemand einen besseren Weg gefunden hat, dies zu erreichen. Meine bevorzugte Programmiersprache ist derzeit C # - ich würde mich daher über Antworten in C # freuen. Jede Verwendung von Linq und anderen ausgefallenen Math-Funktionen ist in Ordnung, solange es der schnellste Weg ist.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage