blob: 2b732bbee43a96cf89e3da3ad6088106eddd20da (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
//N := length of field
int maxStart = 1, maxLen = 0, curStart = 1, len = 0;
double maxValue = 0, sum = 0;
for (int pos = 0; pos < N; pos++) {
sum += values[pos];
len++;
if (sum > maxValue) { // neues Maximum
maxValue = sum; maxStart = curStart; maxLen = len;
}
if (sum < 0) { // alles zuruecksetzen
curStart = pos +2; len = 0; sum = 0;
}
}
//maxSum := maximaler Wert, maxStart := Startposition, maxLen := Laenge der Sequenz
|